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

时间:2013-06-13 18:12:46

标签: python websocket tornado

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并将消息传递给适当的客户端。

1 个答案:

答案 0 :(得分:0)

其实你做错了什么。您不需要将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)