【发布时间】:2015-09-22 05:37:50
【问题描述】:
我想创建通知系统。当服务器将数据保存到数据库(仅限通知模型)时,它应该由 Tornado websocket 发送到客户端(浏览器)
到目前为止,我配置了 websocket,但我不知道如何向客户端发送数据。
class WebSocketHandler(tornado.websocket.WebSocketHandler):
def __init__(self, *args, **kwargs):
self.id = None
self.client = None
super(WebSocketHandler, self).__init__(*args, **kwargs)
def open(self, *args):
self.id = self.get_argument("Id")
self.stream.set_nodelay(True)
clients[self.id] = {"id": self.id, "object": self}
def on_message(self, message):
message = json.loads(message)
print("Client %s received a message : %s" % (self.id, message))
self.write_message("message: " + str(message['body']))
def on_close(self):
print('closed?')
if self.id in clients:
del clients[self.id]
def check_origin(self, origin):
return True
def _connect_to_redis(self):
logging.info('connect to redis...')
self._redis_client = tornadoredis.Client(host='localhost', port=6379)
self._redis_client.connect()
app = tornado.web.Application([
(r'/socket', WebSocketHandler),
])
parse_command_line()
app.listen(8888)
tornado.ioloop.IOLoop.instance().start()
我想我需要将 Redis 插入其中。有人可以帮我吗?
【问题讨论】:
标签: python websocket redis tornado