Python 如何向tornado.websockets中的所有活动客户端广播消息?
在实现中,需要使用RequestHandler的子类来处理与websocket客户端的通信。中的示例演示了如何将消息写回客户机以响应其消息,但文档没有明确说明向未参与交换的客户机(例如所有活动客户机)实施广播的正确方式 如何向tornado.websocket中所有主动连接的websocket客户端广播消息?我把我目前的做法作为答案之一 我现在使用的解决方案在一篇文章中提到,也在一个聊天示例中使用。然而,我想知道是否有更好的方法,或者这一方法是否真的应该这样做Python 如何向tornado.websockets中的所有活动客户端广播消息?,python,websocket,tornado,Python,Websocket,Tornado,在实现中,需要使用RequestHandler的子类来处理与websocket客户端的通信。中的示例演示了如何将消息写回客户机以响应其消息,但文档没有明确说明向未参与交换的客户机(例如所有活动客户机)实施广播的正确方式 如何向tornado.websocket中所有主动连接的websocket客户端广播消息?我把我目前的做法作为答案之一 我现在使用的解决方案在一篇文章中提到,也在一个聊天示例中使用。然而,我想知道是否有更好的方法,或者这一方法是否真的应该这样做 EDIT1:使用相同方法的另一个相
EDIT1:使用相同方法的另一个相关问题:我找到了一种方法,但我不确定这是否真的应该这样做。它只是将WebSocketHandler添加到打开的全局列表中:
active_clients = set()
class Handler(WebSocketHandler):
def open(self):
active_clients.add(self)
def on_message(self, args):
for client in active_clients:
client.write_message('msg') # will be written to every client
def on_close(self):
active_clients.remove(self)