美文网首页
在tornado中使用WebSocket

在tornado中使用WebSocket

作者: 锋之律 | 来源:发表于2018-11-08 16:15 被阅读0次

    什么是WebSocket

    WebSocket是一种网络通信协议,与Http协议不同的是,WebSocket 连接允许客户端和服务器之间进行全双工通信,以便任一方都可以通过建立的连接将数据推送到另一端。WebSocket 只需要建立一次连接,就可以一直保持连接状态。

    如何在tornado中使用WebSocket(本文重点)

    注意:WebSocket可以共用Http对端口的监听和路由的配置。

    class MyWebSocketHandler(websocket.WebSocketHandler):
    
        # 保存连接的用户,用于后续推送消息
        connect_users = set()
    
        def open(self):
            print("WebSocket opened")
            # 打开连接时将用户保存到connect_users中
            self.connect_users.add(self)
    
        def on_message(self, message):
            print('收到的信息为:' + message)
    
        def on_close(self):
            print("WebSocket closed")
            # 关闭连接时将用户从connect_users中移除
            self.connect_users.remove(self)
    
        def check_origin(self, origin):
            # 此处用于跨域访问
            return True
        
        
        @classmethod
        def send_demand_updates(cls, message):
            # 使用@classmethod可以使类方法在调用的时候不用进行实例化
            # 给所有用户推送消息(此处可以根据需要,修改为给指定用户进行推送消息)
            for user in cls.connect_users:
                user.write_message(message)
    

    调用以下方法来向已连接的客户端发送消息:

    MyWebSocketHandler.send_demand_updates("hello")
    

    相关文章

      网友评论

          本文标题:在tornado中使用WebSocket

          本文链接:https://www.haomeiwen.com/subject/lrpwxqtx.html