【发布时间】:2012-11-21 14:15:16
【问题描述】:
我有一个由两个发布者和一个订阅者组成的基本 ZeroMQ 场景。这在本地计算机上一直运行良好,直到我决定在我的局域网内的不同计算机中分离所有进程。这就是我创建 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")
订阅者代码:
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, "")
我尝试输入tcp://127.0.0.1:5556 作为订阅者的绑定address:port,但这没有区别。
【问题讨论】:
-
机器之间的端口是否存在防火墙问题?你能在两台机器之间尝试一些更简单的事情吗?比如 req/rep?可能是 ZeroMQ 包中的一个基本回显示例,只是为了确认端口正在通信。
-
PyZMQ pub/sub examples 可能有助于理解问题。