def on_message(self, message):
"""
Handle incoming messages on the WebSocket.
:param message: JSON string
:type message: str
"""
try:
message = tornado.escape.json_decode(message)
event = message.get('event')
data = message.get('data')
except ValueError:
self.emit_warning('Invalid JSON was sent.')
return
if not event:
self.emit_warning('There is no event in this JSON.')
return
if not self.websocket.events.get(event):
return
if not data:
data = {}
elif not isinstance(data, dict):
self.emit_warning('The data should be a dictionary.')
return
callback = self.websocket.events.get(event)
spec = inspect.getargspec(callback)
kwargs = {}
if 'self' in spec.args:
kwargs['self'] = self.websocket.context
if 'socket' in spec.args:
kwargs['socket'] = self
if 'data' in spec.args:
kwargs['data'] = data
return callback(**kwargs)
websockethandler.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录