我正在尝试使用二进制模式的Websockets将二进制数据从Python编写的服务器传输到客户端浏览器(运行JavaScript)。我已经在文本模式下实现了这种通信,但现在我希望通过使用二进制模式来提高性能。
我看到的所有示例(例如这个和使用Tornado的matplotlib/webagg的源代码)都声称它们正在使用二进制模式,但实际上它们似乎在传输之前将原始二进制数据编码为UTF-8(或Base64)。在我看来,这样做并不是真正的二进制传输,因为它会增加30%到50%的开销。
因此,我的问题是,是否必须将二进制数据编码为UTF-8或Base64才能使用基于IP的Websockets?如果不是,请指向一个在不编码的情况下完成此操作的示例。
我一直相信套接字支持真正的二进制通信,但也许对于某些原因,IP Websockets不支持。也许有人可以解释一下这个问题。在这个领域似乎有了一些进展,所以这增加了混淆。
我看到的所有示例(例如这个和使用Tornado的matplotlib/webagg的源代码)都声称它们正在使用二进制模式,但实际上它们似乎在传输之前将原始二进制数据编码为UTF-8(或Base64)。在我看来,这样做并不是真正的二进制传输,因为它会增加30%到50%的开销。
因此,我的问题是,是否必须将二进制数据编码为UTF-8或Base64才能使用基于IP的Websockets?如果不是,请指向一个在不编码的情况下完成此操作的示例。
我一直相信套接字支持真正的二进制通信,但也许对于某些原因,IP Websockets不支持。也许有人可以解释一下这个问题。在这个领域似乎有了一些进展,所以这增加了混淆。