ZMQ Socket解决方案,用于通过连接重建进行1对1双向通信?

时间:2013-11-20 14:59:56

标签: sockets zeromq

我正在寻找一种支持ZMQ的解决方案,用于连接到0或1个对等端且不超过该端点的绑定端点之间的通信。通信是双向的,连接可以在任何时间点结束或切断;并且可以与新对等体或同一对等体重新建立连接。如果绑定端点在另一端没有对等端则阻塞或不阻塞,这无关紧要。

什么ZMQ插槽对最适合这个用例?我最初想的是REP / REQ,但是套接字对允许多个REQ连接到一个REP,这是我不想要的;当有人断开连接时,它还需要处理“我正在等待一个recv /我要发送一些东西”锁步模式。 PAIR也似乎很糟糕,因为它不会自然地处理重新连接,但它有我想要的“0或1对等”限制。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

简短的回答:不幸的是,没有一种模式完全符合您的需求。

最接近的模式是ZMQ PAIR to PAIR pattern。但是它在以下方面有一些限制:

  

ZMQ_PAIR套接字专为跨线程间通信而设计   zmq_inproc(7)传输并且不实现诸如的功能   自动重新连接。 ZMQ_PAIR套接字被认为是实验性的   可能有其他缺失或破坏的方面。

ROUTER和DEALER是最灵活的模式。您可以控制它来设置所需的限制。