使用Tornado中的WebSocket

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容