如何在websocket tornado python中发送json头?

时间:2013-06-13 06:57:05

标签: python-2.7 websocket tornado

 def on_message(self, message):

     for client in ChatWebSocket.clients:
         print(client)
         t=json.loads(message)
         client.write_message(json.dumps('Content-type:application/json\n')) 
         client.write_message(json.dumps({'a':t['b']}))
         print(t['b'])

问题是客户端接受它像普通字符串而不是标题 请帮忙

1 个答案:

答案 0 :(得分:2)

来自Tornado's documentation

  

WebSocketHandler.write_message(message, binary=False)

     

将给定的消息发送到此Web Socket的客户端。

     

消息可能 字符串或dict(将编码为json)。如果二进制参数为false,则消息将以utf8的形式发送;在二进制模式下,允许任何字节串。

所以你不需要转储任何东西。只需按原样发送字典,然后Tornado会将其编码为JSON: false,消息将以utf8发送;在二进制模式下,允许任何字节串。

所以你不需要转储任何东西。只要按原样发送字典,Tornado就会发送

def on_message(self, message):
  for client in ChatWebSocket.clients:
    print(client)
    t = json.loads(message)
    client.write_message({'a': t['b']})
    print(t['b'])