从ZeroMQ(pyzmq)套接字接收所有可用消息

时间:2014-01-13 10:43:08

标签: python zeromq pyzmq

有没有一种很好的方法来接收zmq套接字上的所有消息可用消息?特别是在使用Poller时。

或者是唯一可以继续调用非阻塞recv()的解决方案,直到没有任何东西离开?

编辑:

我想我可能已回答了自己的问题。使用socket.poll()是我能看到的最干净的。

import zmq

ctx = zmq.Context.instance()
socket = ctx.socket(zmq.SUB)
socket.connect('tcp://127.0.0.1:1234')
socket.subscribe = ''

messages = []
while socket.poll(100) == zmq.POLLIN:
    messages.append(socket.recv())

print messages

1 个答案:

答案 0 :(得分:0)

也许值得一提的是,如果消息量很大,您可以将socket.poll超时降低到0,以便它立即返回-更多here