首页 > 解决方案 > 在 python 节点之间发送大型 dict/JSON 消息的简单网络协议

问题描述

我正在构建一个 Python 3.6 应用程序,它通过网络在可用节点之间分配特定作业。有一台服务器可以构建作业。客户端连接到服务器并被分配一个作业,计算完成后它们返回完成。

作业由带有指令的 dict 对象组成,它可以变得很大(> 65536 字节,可能< 30 MB)。

在我的第一次尝试中,我使用 Twisted 库通过从twisted.internet.protocol. self.transport.write()另一方面,当通过回调函数使用和接收序列化对象时,dataReceived()仅接收到 65536 个字节。可能这就是缓冲区大小。

是否有一个“简单”协议允许我在 Python 3.6 中的服务器和多个客户端之间交换更大的消息,而不会增加太多的编码开销?

提前非常感谢!

标签: pythonpython-3.xnetworkingtcptwisted

解决方案


最后我使用了websockets。它就像一个魅力,即使是大消息。


推荐阅读