我试图在ZeroMQ中实现基本的DEALER - ROUTER套接字。 我的问题有很多部分。
在此之前,这是我的示例脚本
问题 -
首先,我的vanilla DEALER SCRIPT无法从SOCKET中读取消息。
其次,当我实现DEALER或ROUTER PATTERN时,是否必须传递IDENTITY(作为标题的一部分),即不能在没有任何IDENTITY的情况下发送消息。
换句话说,DEALER - ROUTER模式(可以在下面看到)可以共存并在它们之间传递消息而不在标题中发送身份信息。
因为,如果没有身份,我也无法让它工作。
注意: - 目前图片中的Zeromq ruby库(ruby客户端)是ffi-rzmq
答案 0 :(得分:0)
您的代码显示了很多关于ZMQ如何工作的误解,我建议您阅读the guide并按照Ruby示例来设置脚本。
以下是我看到的问题:
identity
- 它永远不会将自己的身份作为消息的一部分,ZMQ会默默地将其删除,因为它不是消息数据,而是打算成为消息数据。 ROUTER套接字使用的“地址”。因此,您实际上已在您的identity
变量中收到分隔符,将消息收到您的delimiter
变量中,然后不会留下任何内容,而您的msg
变量为空。如果你puts
所有三个变量的值,你会看到它。