有没有办法在 ZeroMQ 中拥有异步客户端和服务器?

Is there any way to have an asynchronous client and server in ZeroMQ?

有没有办法在 ZeroMQ 中使用相同的 TCP 端口和多个套接字来实现异步客户端和服务器?

我已经尝试了 ROUTER/ROUTER 模式,但没有成功。

计划是在处理器之间建立一个具有发送和接收模式的非对称连接。所以一个 Processor 实体将是一个客户端,同时也是一个服务器。

Is there any way to have an asynchronous client and server in ZeroMQ, using the same TCP-port and many sockets ?

是的,有。

作为预防措施,换句话说,在陷入麻烦之前,最好回顾 或此处其他帖子和讨论中的主要概念差异。

上面的的意思是,一个-.bind()-多个- .connect()-s,该组合仍然只使用一个 <transport-class>://<a-class-specific-address>,对于 IPv4 上的 tcp:// transport-class 意味着一个 tcp://A.B.C.D:port# 占用了整个 1:MANY-sockets-composition.

出于显而易见的原因,更复杂的组合,例如 many-.bind()-s-many-.connect()-s,在可行的情况下是可能的,因为 ZeroMQ 基础设施拓扑选项和套接字-"in-band"-消息路由功能因此被设置并用于实际消息流机制的智能决策。