当on_message调用时,tornado websocket会收到多条消息

时间:2015-11-06 08:32:34

标签: python websocket tornado

我使用tornado websocket发送/ recv消息,客户端发送json消息,服务器recv消息和json解析,但为什么服务器获取消息,这是mutil json消息,如{"a":"v"}{"a":"c"},如何处理这个消息

2 个答案:

答案 0 :(得分:1)

也许你应该划分你发送的消息,这样就很容易将它们拆分 - 在这种情况下你可以添加一个\ n,显然分隔符不能在消息中发生。另一种方法是以明确分隔的方式为每条消息的长度加上前缀,然后接收方读取该字节数的长度并解析它。

答案 1 :(得分:0)

我写了一个解析此消息的函数

def parse_multi_msg(msg):
  is_in_quotation = False
  aObjs = []
  sTemp = ""
  for c in msg:
    sTemp += c;

    if c == '"':
      if not is_in_quotation:
        is_in_quotation = True
      else:
        is_in_quotation= False


    if c == "}" and not is_in_quotation:
      aObjs.append(json.loads(sTemp));
      sTemp = "";

  return aObjs