[英]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.