【发布时间】:2013-01-26 15:11:55
【问题描述】:
我正在尝试以二进制模式使用 websockets 将二进制数据从用 Python 编写的服务器传输到客户端浏览器(运行 javascript)。我已经在文本模式下实现了这种通信,但现在我希望通过以二进制模式通信来提高性能。
我见过的所有示例(例如this,如果有人深入研究使用 Tornado 的 matplotlib/webagg 的源代码)声称它们使用的是二进制模式,但实际上它们似乎是对原始二进制数据进行编码在传输之前的某个时间点转换为 UTF-8(或 base64)。在我看来,这样做并不是真正的二进制传输,因为它会增加 30% 到 50% 的开销。
所以我的问题是,是否必须将二进制数据编码为 utf-8 或 base64 才能使用基于 IP 的 websocket?如果没有,请指出一个不编码的例子。
我一直相信套接字确实支持真正的二进制通信,但由于某种原因,IP websockets 可能并非如此。也许有人可以阐明这件事。在过去一年左右的时间里,这方面似乎取得了一些进展,从而增加了混乱。
【问题讨论】:
-
您可能会发现 this 具有相关性。
标签: javascript python binary websocket