pyzmq是ZeroMQ消息库的Python包装器。
Facebook的Tornado包括一个eventloop,用于在文件描述符和本机套接字上处理轮询事件。pyzmq已经包含了Tornado的一小部分(特别是它的ioloop),并将其IOStream类适配到ZMQStream中,以处理ØMQ套接字上的轮询事件。ZMQStream对象的工作方式与套接字对象非常相似,但不是直接调用recv(),而是使用on_recv()注册回调。回调函数也可以通过on_send()来注册send事件。
下面是一个带有zeroMQ PUB子套接字的Tornado HTTP服务器示例:
#!/usr/bin/env python
import json
import tornado
import tornado.web
import zmq
from tornado import httpserver
from zmq.eventloop import ioloop
from zmq.eventloop.zmqstream import ZMQStream
ioloop.install()
tornado.ioloop = ioloop
import sys
def ping_remote():
"""callback to keep the connection with remote server alive while we wait
Network routers between raspberry pie and cloud server will close the socket
if there is no data exchanged for long time.
"""
pub_inst.send_json_data(msg=&