我正在尝试以二进制模式使用 websockets 将二进制数据从用 Python 编写的服务器传输到客户端浏览器(运行 javascript)。我已经以文本模式实现了这种通信,但现在我希望通过以二进制模式进行通信来提高性能。
我见过的所有示例(例如,如果有人通过使用 Tornado 的 matplotlib/webagg 的源代码进行挖掘)声称它们正在使用二进制模式,但实际上它们似乎将原始二进制数据编码为 UTF-8(或base64)在传输前的某个时间点。在我看来,这样做并不是真正的二进制传输,因为它会增加 30% 到 50% 的开销。
所以我的问题是,是否必须将二进制数据编码为 utf-8 或 base64 才能使用基于 IP 的 websocket?如果没有,请指出一个示例,该示例无需编码即可完成。
我一直认为套接字确实支持真正的二进制通信,但由于某种原因,IP websockets 可能并非如此。也许有人可以阐明这件事。在过去一年左右的时间里,该领域似乎取得了进展,这增加了混乱。