2017-06-14 75 views
0

TornadoWebsocket的實現中,需要使用RequestHandler的子類WebSocketHandler來處理與websocket客戶端的通信。 docs中的示例演示瞭如何在回覆消息時將消息寫回客戶端,但文檔沒有說清楚實施向未參與交換的客戶端廣播的正確方式(例如給所有活躍的客戶)。如何將消息廣播到tornado.websockets中的所有活動客戶端?

應該如何將消息廣播到tornado.websocket中所有主動連接的websocket客戶端?我把我目前的做法作爲答案之一。

我現在使用的解決方案是在slightly related question中提到的,也用於一個聊天示例。不過,如果有更好的辦法,或者如果這個辦法確實如此,我想知道。

EDIT1:Broadcasting a message using Tornado

回答

1

的一種方式,我發現,但我不知道這是否是一個應該如何真正去了解它只是增加了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) 
相關問題