将tornado websocket对象转换为json来标识客户端


class ChatWebSocket(tornado.websocket.WebSocketHandler):
    clients = []
    def open(self):
        ChatWebSocket.clients.append(self)
        self.write_message(self)      
    def on_message(self, message):
        print(self)
        self.write_message('{"a":"SDF"}') 
    def on_close(self):
        ChatWebSocket.clients.remove(self)

我想在json中转换self对象并将其发送给客户端,以便我可以识别请求on_message并将消息传递给适当的客户端。

其实你做错了什么。您不需要将self转换为json并将其发送给客户端。ChatWebSocket的每个实例都有关于其ws-connection的信息。因此方法write_message将消息发送到相应的客户端。

def write_message(self, message, binary=False):
    if isinstance(message, dict):
        message = tornado.escape.json_encode(message)
    self.ws_connection.write_message(message, binary=binary)

最新更新