我正在寻找一种支持ZMQ的解决方案,用于连接到0或1个对等端且不超过该端点的绑定端点之间的通信。通信是双向的,连接可以在任何时间点结束或切断;并且可以与新对等体或同一对等体重新建立连接。如果绑定端点在另一端没有对等端则阻塞或不阻塞,这无关紧要。
什么ZMQ插槽对最适合这个用例?我最初想的是REP / REQ,但是套接字对允许多个REQ连接到一个REP,这是我不想要的;当有人断开连接时,它还需要处理“我正在等待一个recv /我要发送一些东西”锁步模式。 PAIR也似乎很糟糕,因为它不会自然地处理重新连接,但它有我想要的“0或1对等”限制。
有什么建议吗?
答案 0 :(得分:1)
简短的回答:不幸的是,没有一种模式完全符合您的需求。
最接近的模式是ZMQ PAIR to PAIR pattern。但是它在以下方面有一些限制:
ZMQ_PAIR套接字专为跨线程间通信而设计 zmq_inproc(7)传输并且不实现诸如的功能 自动重新连接。 ZMQ_PAIR套接字被认为是实验性的 可能有其他缺失或破坏的方面。
ROUTER和DEALER是最灵活的模式。您可以控制它来设置所需的限制。