master
Raw Download raw file
 1
 2# pip install geojson tornado pyzmq
 3
 4import tornado.httpserver
 5import tornado.websocket
 6import tornado.ioloop
 7import tornado.web
 8
 9import zmq
10from zmq.eventloop import ioloop
11from zmq.eventloop.zmqstream import ZMQStream
12ioloop.install()
13
14 
15class WSHandler(tornado.websocket.WebSocketHandler):
16  def __init__(self):
17    active_ws = []
18    ctx = zmq.Context()
19    s = ctx.socket(zmq.SUB)
20    s.connect('tcp://127.0.0.1:5000')
21    s.setsockopt(zmq.SUBSCRIBE, "")
22    stream = ZMQStream(s)
23
24    def echo(msg):
25      print "receiving message: %s" % msg
26      for socket in socket_connections:
27        socket.write_message(msg[0])
28    stream.on_recv(echo)
29
30  def open(self):
31      print 'new connection'
32    
33  def on_message(self, message):
34      print 'message received %s' % message
35
36  def on_close(self):
37    print 'connection closed'
38
39
40if __name__ == "__main__": 
41
42  #parameters
43  ws_port = 8888
44  zmq_sub = 'tcp://127.0.0.1:5000'
45  application = tornado.web.Application([
46    (r'/ws', WSHandler),
47  ])
48  http_server = tornado.httpserver.HTTPServer(application)
49  http_server.listen(ws_port)
50  tornado.ioloop.IOLoop.instance().start()