ZeroMQ在NAT /防火墙后面的不同网络中使用发布 - 订阅模式

时间:2012-08-29 05:34:01

标签: sockets networking zeromq

发布 - 订阅方法是否有效:

  1. 发布商和订阅者在不同的网络中(我已经检查过一次 - 它有效)
  2. 订户位于NAT \ firewall
  3. 之后

    在这两种情况下,数据包路由都能正常工作。

    据我所知,PUB \ SUB使用相同的TCP传输,所以如果PUB \ SUB不起作用,那么标准的windows winsock也不起作用? 如果仅仅未定义数据包路由机制,是否需要PUB \ SUB代理(如http://zguide.zeromq.org/page:all#toc34)?

1 个答案:

答案 0 :(得分:0)

我发现一些代码使用PUB \ SUB模型并在这里使用NAT http://grokbase.com/t/zeromq/zeromq-dev/112q9934vg/nat-firewall-pub-sub-traversal

连接的发布者,而不是绑定:

import zmq
ctxt = zmq.Context()
pub = ctxt.socket(zmq.PUB)
pub.connect("tcp://127.0.0.1:2000")
while 1:
pub.send(os.urandom(5))

绑定的订阅者,而不是连接:

import zmq
ctxt = zmq.Context()
sub = ctxt.socket(zmq.SUB)
sub.bind("tcp://127.0.0.1:2000")
while 1:
sub.rcv()