使用ZMQ发布/订阅将消息发送到本地网络中的每台计算机?

时间:2018-08-15 00:43:11

标签: zeromq publish-subscribe

我有12台“节点”嵌入式计算机,我希望从服务器计算机向其发送消息。我不知道他们的IP地址,他们也不知道我的IP地址。有什么方法可以通过本地网络“广播” tcp消息,以便他们都可以在某个端口上接收它?

到目前为止,我已经尝试了12个节点作为发布者和“服务器”作为订阅者的pub / sub连接。我听说您可以使用0.0.0.0侦听所有传入的IP地址,也可以使用*广播给任何要侦听的人。

#On the "server"
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:{port}")

#On the "node"
socket = context.socket(zmq.SUB)
socket.connect("tcp://0.0.0.0:{port}") 

当发布者和订阅者是同一台机器时,这非常适合测试,但是在不同的机器上执行时失败(永远不会收到消息)。我在这里做错了什么?可能与我的防火墙有关吗?

[如果有问题,我正在MacBook和Linux / ARM节点上使用python 2]

1 个答案:

答案 0 :(得分:1)

ZeroMQ Guide to Peer to Peer networking属于使用原始UDP发现对等点的路线。您可能必须遵循这些原则。