1

ROUTER にレンダリングする DEALER ソケットがあり、メッセージが到着すると、json としてデコードできません。受信したテキストを印刷して Python 端末にコピーすると、デコードできますが、受信コードはできません。

コード送信は次のとおりです。

self._out_socket = self._out_context.socket(zmq.DEALER)
self._out_socket.connect("ipc://testout")
self._out_socket.send_json(bump)

これを受け取るコードは次のとおりです。

ip_soc.socket(zmq.ROUTER)
ip_soc.socket.bind("ipc://testout")
ip_stream = ZMQStream(ip_soc.socket)
ip_stream.on_recv(send_res)
#... ioloop start here to wait

このメッセージが送信されたとき:

{'index': 0, 'image_generated': 'false', 'resdict': [], 'result': [' (\\mathrm{\\%i}1) \x05\x05'], '_id': u'1ceb8c99c1a248a48418a6067b335613', 'purpose': 'result'}

ここに私が受け取るものがあります:

['\x00k\x8bEg', '{"index":0,"image_generated":"false","resdict":[],"result":[" (\\\\mathrm{\\\\%i}1) \\u0005\\u0005"],"_id":"1ceb8c99c1a248a48418a6067b335613","purpose":"result"}']

デコードしようとすると(上記のリストの2番目の部分:)

辞書 = json.loads(メッセージ[1])

私はこのエラーに遭遇しました:

No JSON object could be decoded 

何がうまくいかないのですか?PUSH と PULL を使用すると、同じコードが正常に機能します。最終的な結果として、複数の独立したプロセスが 1 つのレシーバーに送信できる N 対 1 の zmq スキームが望ましいと考えているため、DEALER-ROUTER を使用しようとしています。

4

0 に答える 0