diff options
Diffstat (limited to 'external_libs/python/pyzmq-14.7.0/examples/eventloop/web.py')
-rw-r--r-- | external_libs/python/pyzmq-14.7.0/examples/eventloop/web.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/external_libs/python/pyzmq-14.7.0/examples/eventloop/web.py b/external_libs/python/pyzmq-14.7.0/examples/eventloop/web.py new file mode 100644 index 00000000..1285f950 --- /dev/null +++ b/external_libs/python/pyzmq-14.7.0/examples/eventloop/web.py @@ -0,0 +1,46 @@ +import zmq +from zmq.eventloop import ioloop, zmqstream + +""" +ioloop.install() must be called prior to instantiating *any* tornado objects, +and ideally before importing anything from tornado, just to be safe. + +install() sets the singleton instance of tornado.ioloop.IOLoop with zmq's +IOLoop. If this is not done properly, multiple IOLoop instances may be +created, which will have the effect of some subset of handlers never being +called, because only one loop will be running. +""" + +ioloop.install() + +import tornado +import tornado.web + + +""" +this application can be used with echostream.py, start echostream.py, +start web.py, then every time you hit http://localhost:8888/, +echostream.py will print out 'hello' +""" + +def printer(msg): + print (msg) + +ctx = zmq.Context() +s = ctx.socket(zmq.REQ) +s.connect('tcp://127.0.0.1:5555') +stream = zmqstream.ZMQStream(s) +stream.on_recv(printer) + +class TestHandler(tornado.web.RequestHandler): + def get(self): + print ("sending hello") + stream.send("hello") + self.write("hello") +application = tornado.web.Application([(r"/", TestHandler)]) + +if __name__ == "__main__": + application.listen(8888) + ioloop.IOLoop.instance().start() + + |