【发布时间】:2017-12-07 21:24:52
【问题描述】:
我正在尝试构建一个通信将由node.js 服务器完成的应用程序。该节点服务器将接收来自其他节点的消息。
我的node.js 代码是:
var zmq = require('zmq'),
socket = zmq.socket('sub');
socket.bind('tcp://127.0.0.1:5556', function (err) {
if (err) {
console.log('Error: ', err);
throw err;
}
socket.on('message', function (envelope, blank, data) {
console.log(arguments);
});
socket.on('error', function (err) {
console.log(arguments);
});
});
在系统的另一部分,有一个java 服务器应该为这个服务器发送消息。
这是我的java 代码:
Context context = ZMQ.context(1);
Socket publisher = context.socket(ZMQ.PUB);
publisher.connect("tcp://127.0.0.1:5556");
for (int request_nbr = 0; request_nbr < 10; request_nbr++) {
publisher.send("Hello");
}
目前,我的java 服务器在本地运行,而我的node.js 在暴露了端口 5556 的 docker 内运行。
我已成功从java 服务器发送消息。但是我的node.js 服务器没有收到任何消息。
我的 ZeroMQ 初始化有什么问题吗?
【问题讨论】:
-
您可以在这里做一些简单的事情来对问题进行分类 - 例如。在 Docker 之外运行,创建 Java 订阅者,创建 Node 发布者......
-
在 docker 外运行并不能解决我的问题
标签: java node.js sockets zeromq data-stream