2013-07-15 22 views
2

我在我的項目中使用了zeromq中的不同模式,現在我正在使用req/rep(稍後將轉移到經銷商/路由器)和pub/sub。客戶端將消息發送到服務器,服務器將此信息發佈給已訂閱的其他客戶端。在zeromq中使用pub/sub + req/rep進行輪詢

要使用多個套接字我遵循此線程上的建議 Combining pub/sub with req/rep in zeromq和使用zmq_poll。我的服務器在req套接字和pub套接字上進行輪詢。

在編寫代碼的同時閱讀上面的帖子,我猜我的酒吧套接字永遠不會被polledin,這就是我現在正在觀察當我運行該程序。只有我的請求被調查並且發佈根本沒有發生。 如果我不使用輪詢,它可以正常工作,即服務器收到我發佈的消息。 所以我不清楚投票將如何在這種模式中有用,以及我如何使用它?

回答

3

您可能不需要輪詢酒吧套接字。你當然不需要在上輪詢- 因爲它永遠不會被觸發(酒吧套接字只發送)。

如果您想要在req和pub套接字上輪詢「ready to send」,輪詢模式可能非常有用,因此您可以複用這些通道。如果/當您轉向使用經銷商/路由器時,這將特別有用。

其原因是用代理商(例如)替換請求可以允許您在收到回覆之前發送多條消息。對內部和外部郵件進行輪詢將使您能夠充分利用這一點。

+0

好的,這是有道理的。非常感謝 – user1715513