I am trying to use zmq with C# and Python and have run into an issue that I hoping someone can help me with. My DealerSocket's ReceiveReady event is not being invoked!
I am trying to implement an asynchronous client where a C#/NetMQ client sends a message to the Python/pyzmq 'server' and later gets a reply via a callback method.
On the C# side, I have a DealerSocket and I subscribe the method MyReceiveReady to the socket's ReceiveReady event. I also create a poller and add the client to the poller and I am calling the poller.RunAsync() method to start the poller. The client assembles a NetMQMessage and sends the message via the client.SendMultipartMessage(msg) method.
On the Python side, I have a RouterSocket that receives a message with the server.recv_multipart() method, performs some work with the contents of the message, then assembles a return message and replies to the client with the server.send_multipart(msg) method.
When I run the Python code and then the C# code, the C# client sends the message, the Python server receives the message and sends the reply, but the client's ReceiveReady event never invokes, so the client never receives the reply! If I implement the server in C# the client's event IS invoked, but, I have a requirement that the server be in Python and the client in C#.
Am I doing something wrong? Or, is this some deficiency or bug between NetMQ and pyzmq? Please help!