def test_web_socket(self): _self = self class WSClient(websocket.WebSocket): def on_open(self): self.write_message( json.dumps({ 'type': 'test-message', 'data': 'hello', })) def on_message(self, data): mess = json.loads(data) t = mess['type'] if t == 'test-end': _self.io_loop.add_callback(_self.stop) elif t == 'user_join': _self.assertEqual(mess['user'], _self._test_user.email) _self.assertEqual(len(mess['users']), 1) elif t == 'test-message': _self.assertEqual(mess['data'], "hello") else: _self.fail("Unknown message {0}".format(mess)) start_listener() self.io_loop.add_callback( partial(WSClient, self.get_url('/ws/projects/1/'), self.io_loop)) def action(): notify_changes("projects", 1, {'type': 'test-end'}) self.io_loop.add_timeout(datetime.timedelta(seconds=1), action) self.wait()
def test_web_socket(self): _self = self class WSClient(websocket.WebSocket): def on_open(self): self.write_message(json.dumps({ 'type': 'test-message', 'data': 'hello', })) def on_message(self, data): mess = json.loads(data) t = mess['type'] if t == 'test-end': _self.io_loop.add_callback(_self.stop) elif t == 'user_join': _self.assertEqual(mess['user'], _self._test_user.email) _self.assertEqual(len(mess['users']), 1) elif t == 'test-message': _self.assertEqual(mess['data'], "hello") else: _self.fail("Unknown message {0}".format(mess)) start_listener() self.io_loop.add_callback( partial(WSClient, self.get_url('/ws/projects/1/'), self.io_loop)) def action(): notify_changes("projects", 1, { 'type': 'test-end' }) self.io_loop.add_timeout(datetime.timedelta(seconds=1), action) self.wait()
def main(): logger = logging.getLogger(__name__) tornado_app = Application( [ (r'/ws/(?P<obj_type>[\w]+)/(?P<obj_id>[\d]+)/$', SocketHandler), ], debug=False) start_listener() logger.info("Tornado websocket server started on port {0}".format(ws_port)) server = HTTPServer(tornado_app) server.listen(options.port) try: IOLoop.instance().start() except KeyboardInterrupt: logger.warn("Keyboard Interrupt") IOLoop.instance().stop()
def main(): logger = logging.getLogger(__name__) tornado_app = Application([ (r'/ws/(?P<obj_type>[\w]+)/(?P<obj_id>[\d]+)/$', SocketHandler), ], debug=False) start_listener() logger.info("Tornado websocket server started on port {0}".format(ws_port)) server = HTTPServer(tornado_app) server.listen(options.port) try: IOLoop.instance().start() except KeyboardInterrupt: logger.warn("Keyboard Interrupt") IOLoop.instance().stop()