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

时间:2014-07-21 17:41:13

标签: javascript python node.js zeromq

我正致力于在node.js中构建一个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示例代码也使用Poller。

我遇到的问题是zeromq.node doesn't seem to use Pollers。节点中的解决方案是仅对消息使用回调吗?我该如何处理POLLIN州?

1 个答案:

答案 0 :(得分:1)

Poller在node.js中是多余的。这只是消息收据的回调。在节点中使用ZMQ需要稍微改变“传统”ZMQ方法和体系结构,因为非阻塞和事件处理的所有内置策略都被卸载到节点,节点自然处理这些内容。