在zeromq中使用pub / sub + req / rep进行轮询

时间:2013-07-15 19:26:39

标签: zeromq

我在项目中使用zeromq中的不同模式,现在我正在使用req / rep(稍后将转移到经销商/路由器)和pub / sub。客户端将消息发送到服务器,服务器将此信息发布给已订阅的其他客户端。

要使用多个套接字我遵循此线程的建议 Combining pub/sub with req/rep in zeromq并使用了zmq_poll。我的服务器在req socket和pub socket上轮询。

在编写代码时,在阅读上面的帖子时,我猜到我的pub套接字永远不会得到polledin,这就是我在运行程序时现在所观察到的。只有我的请求被轮询并且发布根本没有发生。 如果我不使用轮询它工作正常,即服务器收到我发布它的消息。 所以我不清楚轮询如何在这种模式中有用以及如何使用它?

1 个答案:

答案 0 :(得分:3)

您可能不需要轮询pub套接字。您当然不需要在上轮询 - 因为它永远不会被触发(pub套接字只发送)。

如果要在req和pub套接字上轮询“ready as send”,则轮询模式可能很有用,允许您复用这些通道。如果/当您转向使用经销商/路由器时,这将特别有用。

原因是用经销商(例如)替换req可以允许您在收到回复之前发送多条消息。轮询内向和外向邮件将使您最大限度地利用它。