我是node-js编程的新手,所以也许我没有看到明显的东西。 zmq中的接收如下:
socket.on('message', function()
{
console.log("Message received: ");
console.log(arguments);
});
如何设置zmq.Poll,或者在设置zmq.NOBLOCK标志的情况下接收,或者在超时后关闭socket = 0的套接字?
我们将不胜感激任何文件的链接。关于轮询的zmq指南示例,只使用异步回调而不是轮询器或超时。它只是setTimeout
和socket.close()
吗?
我使用了类似的东西:
var messageReceived = false;
s.on('message', function() { console.log(arguments); messageReceived=true; });
setTimeout(function() {
if (!messageReceived)
{
console.log("Nothing received. Exiting...");
s.close();
}
}, 5000);
哪个有效。但我不确定这是否是推荐的方法。 另外,node-zeromq对生产有多安全?
答案 0 :(得分:1)
当你将zeromq与节点一起使用时,你会“免费”获得一些东西。具体来说,由于节点是从头开始构建的,所以不阻塞和使用异步方法,poll()
变得多余,NOBLOCK
也变得多余。当我开始使用它时,我遇到了同样的混乱,他们只是没有暴露在节点绑定中,似乎它们应该是直到我理解绑定是为了工作“节点方式”并且因此他们不是需要。
到目前为止,你的超时方法很好;它只取决于你需要什么,但这或多或少都在我开始的地方。