WebsocketServerPython/server.py@2:9f5ab8aa25d1, 2015-12-04 (annotated)
- Committer:
- lucas_favre
- Date:
- Fri Dec 04 15:15:31 2015 +0000
- Revision:
- 2:9f5ab8aa25d1
- Parent:
- 1:19a77722c90a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lucas_favre | 1:19a77722c90a | 1 | import tornado.httpserver |
lucas_favre | 1:19a77722c90a | 2 | import tornado.websocket |
lucas_favre | 1:19a77722c90a | 3 | import tornado.ioloop |
lucas_favre | 1:19a77722c90a | 4 | import tornado.web |
lucas_favre | 1:19a77722c90a | 5 | import socket |
lucas_favre | 1:19a77722c90a | 6 | import json |
lucas_favre | 1:19a77722c90a | 7 | ''' |
lucas_favre | 1:19a77722c90a | 8 | This is a simple Websocket Echo server that uses the Tornado websocket handler. |
lucas_favre | 1:19a77722c90a | 9 | Please run `pip install tornado` with python of version 2.7.9 or greater to install tornado. |
lucas_favre | 1:19a77722c90a | 10 | This program will echo back the reverse of whatever it recieves. |
lucas_favre | 1:19a77722c90a | 11 | Messages are output to the terminal for debuggin purposes. |
lucas_favre | 1:19a77722c90a | 12 | ''' |
lucas_favre | 1:19a77722c90a | 13 | |
lucas_favre | 1:19a77722c90a | 14 | class WSHandler(tornado.websocket.WebSocketHandler): |
lucas_favre | 1:19a77722c90a | 15 | def open(self): |
lucas_favre | 1:19a77722c90a | 16 | print 'New Connection' |
lucas_favre | 1:19a77722c90a | 17 | |
lucas_favre | 1:19a77722c90a | 18 | def on_message(self, message): |
lucas_favre | 1:19a77722c90a | 19 | |
lucas_favre | 1:19a77722c90a | 20 | print 'Message Received ! ' |
lucas_favre | 1:19a77722c90a | 21 | |
lucas_favre | 1:19a77722c90a | 22 | print message |
lucas_favre | 1:19a77722c90a | 23 | |
lucas_favre | 1:19a77722c90a | 24 | if (message != None): |
lucas_favre | 1:19a77722c90a | 25 | decrypt = json.loads(message); |
lucas_favre | 1:19a77722c90a | 26 | |
lucas_favre | 1:19a77722c90a | 27 | |
lucas_favre | 1:19a77722c90a | 28 | if (decrypt["id"] == 'Joystick_center' ): |
lucas_favre | 1:19a77722c90a | 29 | print 'Joystick Center !\n' |
lucas_favre | 1:19a77722c90a | 30 | self.write_message("ACK") |
lucas_favre | 1:19a77722c90a | 31 | |
lucas_favre | 1:19a77722c90a | 32 | elif (decrypt["id"] == 'Joystick_nord' ): |
lucas_favre | 1:19a77722c90a | 33 | print 'Joystick Nord !\n' |
lucas_favre | 1:19a77722c90a | 34 | self.write_message("ACK") |
lucas_favre | 1:19a77722c90a | 35 | |
lucas_favre | 1:19a77722c90a | 36 | |
lucas_favre | 1:19a77722c90a | 37 | def on_close(self): |
lucas_favre | 1:19a77722c90a | 38 | print 'connection closed' |
lucas_favre | 1:19a77722c90a | 39 | |
lucas_favre | 1:19a77722c90a | 40 | def check_origin(self, origin): |
lucas_favre | 1:19a77722c90a | 41 | return True |
lucas_favre | 1:19a77722c90a | 42 | |
lucas_favre | 1:19a77722c90a | 43 | application = tornado.web.Application([ |
lucas_favre | 1:19a77722c90a | 44 | (r'/ws', WSHandler), |
lucas_favre | 1:19a77722c90a | 45 | ]) |
lucas_favre | 1:19a77722c90a | 46 | |
lucas_favre | 1:19a77722c90a | 47 | |
lucas_favre | 1:19a77722c90a | 48 | if __name__ == "__main__": |
lucas_favre | 1:19a77722c90a | 49 | http_server = tornado.httpserver.HTTPServer(application) |
lucas_favre | 1:19a77722c90a | 50 | http_server.listen(1235) |
lucas_favre | 1:19a77722c90a | 51 | myIP = socket.gethostbyname(socket.gethostname()) |
lucas_favre | 1:19a77722c90a | 52 | print '*** Websocket Server Started at %s***' % myIP |
lucas_favre | 1:19a77722c90a | 53 | tornado.ioloop.IOLoop.instance().start() |