什么是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")
网友评论