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

我正在为node.js构build一个Paranoid Pirate。 从一些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示例代码也使用了一个轮询器。

我遇到的问题是, zeromq.node似乎不使用轮询 。 节点中的解决scheme是仅使用callback消息吗? 我应该如何处理POLLIN状态?

轮询器在node.js中是冗余的。 这只是回复消息收据。 在节点中使用ZMQ需要“传统的”ZMQ方法和体系结构的轻微转变,因为所有内置的非阻塞和事件处理策略都被卸载到节点上,节点自然处理这些东西。