Dependencies:  

Committer:
lucas_favre
Date:
Fri Dec 04 15:13:23 2015 +0000
Revision:
1:19a77722c90a
Websocket Server;

Who changed what in which revision?

UserRevisionLine numberNew 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()