繁体   English   中英

我可以在Tornado中获取断开连接的客户端的IP地址和端口吗

[英]Can I get IP address and port of disconnected client in Tornado

当前,当我的龙卷风服务器收到“连接打开”事件时,我将客户端的WebSocketHandler存储在players ,其键为IP和端口/组合键。

players = {}

class WSHandler(tornado.websocket.WebSocketHandler):
    def open(self):
        global players
        players[self.get_id()] = self

    def get_id(self):
        ip = self.request.remote_ip
        port = str(self.stream.socket.getpeername()[1])
        return ip + ":" + port

我想做的就是在连接关闭时从dict移除播放器。 类似于以下内容:

class WSHandler(tornado.websocket.WebSocketHandler):
    def on_close(self):
        global players
        players.pop(self.get_id(), None)

该端口似乎不可访问,因此无法重新创建之前设置的ID。 是否可以通过其他方式检索端口?

每个连接都会创建自己的WSHandler实例,因此只需在初始化时将数据存储在该实例上:

def open(self):
    self.id = self.get_id()
    ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM