I'd like to send Connection object via ØMQ. There are too sides: producer (who sends Connection) and receiver (who receives this Connection).
producer.py
import zmq
import time
from multiprocessing import Pipe
from multiprocessing.reduction import reduce_connection
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5556")
time.sleep(1)
a, b = Pipe()
reduced_a = reduce_connection(a)
socket.send_pyobj(reduced_a)
print b.recv()
receiver.py
import zmq
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.connect ("tcp://localhost:5556")
socket.setsockopt(zmq.SUBSCRIBE, '')
obj = socket.recv_pyobj()
answer_conn = obj[0](obj[1][0],obj[1][1],obj[1][2])
# answer_conn = obj[0](*obj[1])
answer_conn.send('All is OK!')
And while connection rebuliding:
answer_conn = obj[0](obj[1][0],obj[1][1],obj[1][2])
File "/usr/lib/python2.7/multiprocessing/reduction.py", line 170, in rebuild_connection
handle = rebuild_handle(reduced_handle)
File "/usr/lib/python2.7/multiprocessing/reduction.py", line 155, in rebuild_handle
conn = Client(address, authkey=current_process().authkey)
File "/usr/lib/python2.7/multiprocessing/connection.py", line 175, in Client
answer_challenge(c, authkey)
File "/usr/lib/python2.7/multiprocessing/connection.py", line 420, in answer_challenge
raise AuthenticationError('digest sent was rejected')
multiprocessing.AuthenticationError: digest sent was rejected
Does anyone know something that can help to pass a Connection object?
Thank you