使用Tornado中的WebSocket

2016-08-18  本文已影响383人  KenHan

Tornado已经实现了对WebSocket的封装。

以下是源码提供Demo的部分代码。Tornado的github地址:https://github.com/tornadoweb/tornado

class ChatSocketHandler(tornado.websocket.WebSocketHandler):
    waiters = set()

    def open(self):
        ChatSocketHandler.waiters.add(self)

    def on_close(self):
        ChatSocketHandler.waiters.remove(self)

    def on_message(self, message):
        logging.info("got message %r", message)
        self.write_message(u"You said: " + message)

在此ChatSocketHandler中override了open、on_close、on_message方法。

  • open: 在此方法体内,可以进行开启连接后的操作
  • on_close: 在此方法体内,可以进行关闭连接后的操作
  • on_message: 在此方法体内,可以对传入的消息进行操作
  • 使用write_message方法向已连接客户端发送消息

如果仅仅使用以上的方法,在实际开发中将会遇到跨域的问题。这时需要override下WebSocketHandler中的check_origin

def check_origin(self, origin):
    return True
上一篇下一篇

猜你喜欢

热点阅读