我有一个基本的ZeroMQ场景,包括两个发布者和一个订阅者.这在本地计算机上运行良好,直到我决定将LAN中不同计算机中的所有进程分开.这就是我创建ZeroMQ套接字(简化的Python代码)的方法:
(在具有IP的机器上运行的订户进程192.168.1.52)
发布商代码(两个发布商通用):
context = zmq.Context()
self.pub_socket = context.socket(zmq.PUB)
self.pub_socket.connect("tcp://192.168.1.52:5556")
Run Code Online (Sandbox Code Playgroud)
订户代码:
context = zmq.Context()
self.sub_socket = context.socket(zmq.SUB)
self.sub_socket.bind("tcp://192.168.1.52:5556")
self.sub_socket.setsockopt(zmq.SUBSCRIBE, "")
Run Code Online (Sandbox Code Playgroud)
我尝试输入tcp://127.0.0.1:5556作为address:port订阅者的绑定,但这没有任何区别.
我有一个由PUSHer和多个PULLers组成的ZeroMQ网络.问题是拉出器的数量是未知的,并且在某些情况下,它可以是0.当后者发生时,socket.send(msg)似乎永远不会返回.如果我记得很清楚,PUB/SUB套接字不会发生这种情况.
当管道的另一侧没有拉出器时,有没有办法避免推包?
谢谢!