ZMQ用户过滤

时间:2015-07-25 07:41:59

标签: sockets zeromq

根据以下讨论

JSX documentation

当他没有提供过滤器时,似乎没有可能阻止订阅者接收所有消息。

是否可能不提供过滤器的订阅者不会收到任何消息?即,订阅者只接收消息,如果他知道确切的过滤器(没有通配符等)。

1 个答案:

答案 0 :(得分:1)

主题似乎有些混乱。让我们解除 PUB-SUB

的神秘感

案例1) SUB 谁"不提供过滤器"

这是btw在实例化之后的默认初始状态

aSub_signallingChannelEND = aCentralCONTEXT.socket( zmq.SUB )

在这个初始状态中,自然没有有效的订阅(pre-)设置,因为Context()是一个理性过程(不是Norn),因此它不能先验假设任何这样普遍有效的订阅密钥(如果可能的话,那将是非常奥威尔,不会吗?)以便灌输一个SUB - 实例让它“喘息”#34;因为它的诞生。

在原始的 ZeroMQ v2.x 中(注意,这被证明对ZeroMQ库的最新版本无效)但是这个状态并不意味着 {{1} } 方面没有实际收到任何消息。在 SUB 旁边执行了v2.x订阅过滤(无论是否由于性能决策),因此 检测&# 34;未授权"消息仍然可能

案例2) SUB 谁"确实提供了所有过滤器的超集#34;

简短版本 原则上, SUB -side per-se无法区分任何 PUB - 关于订阅内容和内容的决定退订-从

如何让它以特定方式运作?

由于 SUB 消息传递模式是以这种方式定义的,因此您必须使用智能分层设置来满足PUB-SUB模式之外的身份验证需求,或者可以使用其他方法来增加基于身份验证的保护(例如,为基于身份验证的代码/解码内容选择能力量身定制的权利/密钥 - 用于突出显示一些可能的方法)。