【发布时间】:2014-07-07 19:09:36
【问题描述】:
我有一个 nodejs 应用程序,它监听来自客户端的消息(python 应用程序)。 我用于通过 zmq 进行通信的模式是 REQ/REP 模式。 主应用程序应该从许多客户端获取消息。它不会回复他们,只会收到消息。 问题是主应用程序只会收到第一条消息,而下一条消息不会显示在 nodejs 应用程序控制台中。
换句话说,每次我启动 nodejs 应用程序时,我只会收到一条消息。
这是我的代码:
Nodejs 应用程序
var responder = zmq.socket('rep');
responder.on('message', function(request) {
console.log(request);
//here, it seems this function will be called just once!
});
responder.bind('tcp://127.0.0.1:8000', function(err) {
if (err) {
console.log(err);
} else {
console.log('Listening on 8000...');
}
});
python(客户端)部分:
socket = context.socket(zmq.REQ)
socket.connect("tcp://127.0.0.1:8000")
socket.send('blaaaa')
print 'message sent!'
python 部分在函数内部。我可以看到“消息已发送!”的输出。在 python 控制台中(我的意思是很多'消息发送!')。 但我在 nodejs 应用程序中看不到消息。只是在 nodejs 的控制台中看到了第一条消息。
【问题讨论】: