在http://zguide.zeromq.org/上,它说“Pub-sub过滤现在在发布者端而不是用户端完成。这在许多pub-sub用例中显着提高了性能。你可以混合使用v3.2和v2.1 /v2.2发布者和订阅者安全。“
我正在关注http://learning-0mq-with-pyzmq.readthedocs.org/en/latest/pyzmq/patterns/pubsub.html上的示例,并在用户端进行过滤。
如何在发布商方面进行过滤?
注意:我有pyzmq-14.3.1
答案 0 :(得分:3)
用户定义的代码不会干预这一点。 ZMQ内部能力是决定性因素。在任何一种情况下, SUB
- 通过 .setsockopt( zmq.SUBSCRIBE, ... )
v2.x / v3.2 +的实施模型在较低的基于能力的级别决定 PUB
-side是否具备如何获得的专有技术过滤它的一面,或者v2.x是否只是将所有消息都抽到所有.bind()
/ .connect()
-ed传输类并依赖于SUB -side(v2.x或v3.2 +)过滤掉与SUB-side-subscriptions设置列表不匹配的那些
print zmq.pyzmq_version() # display the localhost ZMQ-capability-model
N.b:
从ZeroMQ v3.x开始,在使用连接协议( tcp:
或 ipc:
)时,会在发布方进行过滤。使用epgm://
协议,在用户端进行过滤。在ZeroMQ v2.x中,所有过滤都发生在用户端。