Javascript 我应该如何处理node.js中ZMQ中的轮询?

Javascript 我应该如何处理node.js中ZMQ中的轮询?,javascript,python,node.js,zeromq,Javascript,Python,Node.js,Zeromq,我正在node.js中构建一个偏执狂海盗。从一些python代码开始: poller = zmq.Poller() liveness = HEARTBEAT_LIVENESS interval = INTERVAL_INIT heartbeat_at = time.time() + HEARTBEAT_INTERVAL worker = worker_socket(context, poller) cycles = 0 while True: socks = dict(poller

我正在node.js中构建一个偏执狂海盗。从一些python代码开始:

poller = zmq.Poller()

liveness = HEARTBEAT_LIVENESS
interval = INTERVAL_INIT

heartbeat_at = time.time() + HEARTBEAT_INTERVAL

worker = worker_socket(context, poller)
cycles = 0
while True:
    socks = dict(poller.poll(HEARTBEAT_INTERVAL * 1000))

    # Handle worker activity on backend
    if socks.get(worker) == zmq.POLLIN:
        #  Get message
        #  - 3-part envelope + content -> request
        #  - 1-part HEARTBEAT -> heartbeat
        frames = worker.recv_multipart()
Go示例代码还使用轮询器


我遇到的问题是。节点中的解决方案是否只对消息使用回调?我应该如何处理
POLLIN
状态

轮询器在node.js中是冗余的。这一切都只是对消息接收的回调。在node中使用ZMQ需要对“传统”ZMQ方法和体系结构稍作改变,因为所有用于非阻塞和事件处理的内置策略都被卸载到node,node自然地处理这些内容。

我猜,你是对的。众所周知,node.js使用基于事件的操作模型,因此使用回调对消息接收做出反应听起来非常自然。事实上,这不是“缺少轮询器”,而是“实现已完成”。我怀疑是这样,但我在如何在节点中实现
socks=dict(Poller.poll(HEARTBEAT\u INTERVAL*1000))
方面还是一片空白。我想我只是不需要?