我有一个python应用程序,它包含一个要发送到HTML5/javascript GUI的autobahnwebsocket服务器。我一直在使用JSON在它们之间传输数据,但现在我真的开始紧张我的带宽,因为我需要在一些消息中发送1000个(单精度)3D位置的数组。将这些浮点数都写成JSON的文本似乎是一种明显的浪费,因为理论上我可以为每个数字发送4个字节。BSON似乎是个好得多的主意,但我似乎不能使它发挥作用。在
以下是我的代码要点:
# Python side
class BroadcastServerFactory(WebSocketServerFactory):
# ...
def broadcast_message(message):
bson_msg = bson.BSON.encode(msg)
prepared_msg = self.prepareMessage(bson_msg, isBinary=True)
for c in self.clients:
self.clients[c].sendPreparedMessage(prepared_msg)
^{pr2}$
不幸的是,只要我在javascript端收到消息,我的异常处理程序就会触发:
Failed to deserialize: Error: corrupt bson message {stack: (...), message: "corrupt bson message"}
我在javascript端使用mongodb bson library的浏览器构建,在Python端使用pymongo bson implementation的浏览器构建。在
经过一番努力,我似乎找到了一个可行的解决方案:
相关问题 更多 >
编程相关推荐