有没有办法实现ZeroMQ fullduplex通道?

该项目是通过ZeroMQ在Python和C#程序之间构建消息传递机制。

我希望消息能够随时从两端进出,这不是基本的请求 – 回复模型,也就是REQ/REP
我能想到的一种方法是在两个端口上构建PUB/SUB模型,即两个单向通道。
有没有办法获得真正的双工通道?

使用ZeroMQ有几种方法可以做到这一点。 我建议使用DEALER / ROUTER套接字对:

  • 选择一个程序作为“服务器”,另一个选择“客户端”。
  • 服务器将在端口上绑定ROUTER套接字。
  • 客户端将DEALER套接字连接到服务器的ROUTER端口。 (注意:这意味着客户端必须事先知道服务器的IP和端口。)

此时客户端可以向服务器发送消息,但服务器无法发送给客户端。

  • 客户端向服务器发送“HELLO”消息。

服务器将收到包含客户端地址和HELLO消息的消息。 现在服务器可以使用客户端的地址向客户端发送消息。

DEALER / ROUTER被认为是ZeroMQ中的“高级”sockets对。 我在这里的描述非常高。 您真的需要阅读文档以充分利用ZeroMQ。

哦,是的,先生!

使用PAIR-PAIR甚至XREQ-XREP应该成功。

最好的下一步是仔细阅读相应的可扩展forms通信模式原型的访问点API文档,以便交叉检查所有预先连线的行为逻辑是否满足您的项目需求并在您的项目中使用它们。消息设置和调整设置,以满足您的性能和延迟需求。

就是这么简单(感谢隐藏在这些内置的所有真正的技术)。

使用Python + C / MQL4和其他计算节点之间的这种非常类型的平台间集成,非常值得花时间学习ZeroMQ的function和优势。