Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何向tornado.websockets中的所有活动客户端广播消息?_Python_Websocket_Tornado - Fatal编程技术网

Python 如何向tornado.websockets中的所有活动客户端广播消息?

Python 如何向tornado.websockets中的所有活动客户端广播消息?,python,websocket,tornado,Python,Websocket,Tornado,在实现中,需要使用RequestHandler的子类来处理与websocket客户端的通信。中的示例演示了如何将消息写回客户机以响应其消息,但文档没有明确说明向未参与交换的客户机(例如所有活动客户机)实施广播的正确方式 如何向tornado.websocket中所有主动连接的websocket客户端广播消息?我把我目前的做法作为答案之一 我现在使用的解决方案在一篇文章中提到,也在一个聊天示例中使用。然而,我想知道是否有更好的方法,或者这一方法是否真的应该这样做 EDIT1:使用相同方法的另一个相

在实现中,需要使用RequestHandler的子类来处理与websocket客户端的通信。中的示例演示了如何将消息写回客户机以响应其消息,但文档没有明确说明向未参与交换的客户机(例如所有活动客户机)实施广播的正确方式

如何向tornado.websocket中所有主动连接的websocket客户端广播消息?我把我目前的做法作为答案之一

我现在使用的解决方案在一篇文章中提到,也在一个聊天示例中使用。然而,我想知道是否有更好的方法,或者这一方法是否真的应该这样做


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)