【发布时间】:2014-07-22 22:18:39
【问题描述】:
我正在用 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 状态?
【问题讨论】:
-
我猜,你是对的。由于 node.js 以使用基于事件的操作模型而闻名,使用回调来响应消息接收听起来很自然。其实不是“缺少Poller”,而是“实现完成”。
-
我怀疑是这样,但我对如何在节点中实现
socks = dict(poller.poll(HEARTBEAT_INTERVAL * 1000))持空白。我想我只是不需要?
标签: javascript python node.js zeromq