Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么ZeroMQ消息被置乱?_Node.js_Zeromq_Amqp - Fatal编程技术网

Node.js 为什么ZeroMQ消息被置乱?

Node.js 为什么ZeroMQ消息被置乱?,node.js,zeromq,amqp,Node.js,Zeromq,Amqp,我正在使用nodejs调用我的tcp订户来读取消息 var zmq = require("zeromq"), sock = zmq.socket("sub"); sock.connect("tcp://pubsub.besteffortc.com:7658"); sock.subscribe("/ASD/Travel"); console.log("Subscriber connected to port 3000"); sock.on("message", function(topic, m

我正在使用nodejs调用我的tcp订户来读取消息

var zmq = require("zeromq"),
sock = zmq.socket("sub");
sock.connect("tcp://pubsub.besteffortc.com:7658");
sock.subscribe("/ASD/Travel");
console.log("Subscriber connected to port 3000");

sock.on("message", function(topic, message) {
  console.log(
    "received a message related to:",
    topic.toString(),
    "containing message:",
    message.toString()
  );
});
我得到的输出如下。可能是什么问题? -我的IP地址是否需要被列入白名单才能查看实际数据

注意:主题和URL名称不是实际值,而是虚拟值。

Q:可能是什么问题

ZeroMQ中有一个确定点-如果一条消息得到了传递(Zero的Zen不构成任何保证),那么它肯定是消息的一个精确的逐位副本,即发起者(这里的
发布
)打算
.send()

如果您
.recv()
任何内容(无论是通过本机API级别
.recv()
-方法还是(“message”,f(…){…})
-handler)上提供的包装器),请确保它带有发起者提供的有效负载的1:1位图(除非您的语言包装器做了一件肮脏的工作,混淆了您对有文档记录的ZeroMQ API的使用,产生了一些令人讨厌的垃圾(我不相信这一点,但这可能是一个问题-请尝试您自己控制的任何其他ZeroMQ消息源,看看是否发生了这种情况))

Q:是否需要将我的IP地址列入白名单才能查看实际数据

正如上面详细解释的,此项不是ZeroMQ问题。如果您的应用程序级别/ISO-OSI-5以上行为依赖于签订某种协议,只有在获得“访问验证”(通过白名单或其他方式)后,您的问题才会停留在业务领域,而不是编程领域


ZeroMQ与此无关。ZMQ/RFC文档在每个ZeroMQ服务组合中都是明确的,并且为随机或未记录的行为留下了零空间。

这可能是字符编码的问题。您是否在两侧使用相同的字符编码?如何转换为Node.js使用的内部编码?这是一个问题如果您需要解码此消息,它似乎是二进制的。请与发布者联系以何种格式发送消息,您不能仅从ZMQ接收消息,并期望输出消息将产生人类可读的内容。它是gzip格式的XML