簡體   English   中英

龍卷風-通過WebSocket同時收聽多個客戶端

[英]Tornado - Listen to multiple clients simultaneously over websockets

我想使用Tornado在Python中創建Websocket服務器。 這是API: http//tornado.readthedocs.org/en/latest/websocket.html

在API中,我看不到用於獲取客戶端句柄的選項。 如何同時處理多個客戶端連接?
例如, on_message(self, message)方法直接給出消息。 不包含已連接客戶端的任何句柄。
我希望接收客戶端請求,進行一些處理(這可能需要很長時間),然后回復給客戶端。 我正在尋找一個客戶端句柄,以后可以用來回復。

據我了解,您想要這樣的東西:

class MyWebSocketHandler(tornado.websocket.WebSocketHandler):
    # other methods
    def on_message(self, message):
        # do some stuff with the message that takes a long time
        self.write_message(response)

每個Websocket連接都有您自己的子類WebSocketHandler中的對象。

您甚至可以保存連接並在其他地方使用它:

ws_clients = []

class MyWebSocketHandler(tornado.websocket.WebSocketHandler):
    # other methods
    def open(self):
        if self not in ws_clients:
            ws_clients.append(self)

    def on_close(self):
        if self in ws_clients:
            ws_clients.remove(self)

def send_message_to_all(self, message):
    for c in ws_clients:
        c.write_message(message)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM