【发布时间】:2015-11-06 08:32:33
【问题描述】:
我使用tornado websocket send/recv消息,客户端发送json消息,服务器recv消息和json解析,但是为什么服务器得到的消息是mutil json消息,比如{"a":"v"}{"a":"c"},这个消息怎么处理
【问题讨论】:
我使用tornado websocket send/recv消息,客户端发送json消息,服务器recv消息和json解析,但是为什么服务器得到的消息是mutil json消息,比如{"a":"v"}{"a":"c"},这个消息怎么处理
【问题讨论】:
也许您应该对您发送的消息进行分隔,以便轻松拆分它们 - 在这种情况下,您可以添加一个 \n,显然分隔符不能出现在消息中。另一种方法是以明确分隔的方式为每条消息的长度添加前缀,然后接收者读取长度,然后读取字节数并解析它。
【讨论】:
我写了一个函数来解析这个消息
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
【讨论】: