2

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

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

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

4

1 回答 1

3

您可能不需要轮询 pub 套接字。您当然不需要对其进行轮询-因为永远无法触发(仅发送 pub 套接字)。

如果您想在 req 和 pub 套接字上轮询“准备发送”,轮询模式可能很有用,允许您多路复用这些通道。如果/当您转而使用经销商/路由器时,这将特别有用。

原因是用经销商(例如)替换 req 可以让您在收到响应之前发送多条消息。轮询入站和出站消息将使您能够最大程度地利用这一点。

于 2013-07-16T09:02:54.077 回答