yEnc 用于二进制 websocket 数据

Posted

技术标签:

【中文标题】yEnc 用于二进制 websocket 数据【英文标题】:yEnc for binary websocket data 【发布时间】:2011-05-23 15:25:24 【问题描述】:

目前你只能通过websockets传输原始文本数据,但是这样传输数字不是很浪费吗?

我读到一些应用程序使用 base64 编码,但我也记得这会给您的数据增加相当多的开销。

所以我的问题:

使用 yEncoding 比 base64 更好吗? 我是否应该为常规号码打扰他们中的任何一个?

【问题讨论】:

【参考方案1】:

不要过早优化。除非您要传输大量数字(即每秒很多 MB),否则只需将您的数字作为字符串发送。进行特殊编码将以 CPU 为代价(在两端)为您节省带宽。

在 noVNC 中,我使用 base64 来通过 WebSocket 传输二进制数据。这将原始二进制的带宽增加了 33%(不幸的是,在 API 公开二进制接口之前是必需的),但我仍然可以获得良好的性能,并且每秒传输许多 MB。所以道德是,在你有充分的理由之前不要优化。首先使用简单直接且设计良好的解决方案,然后在您有真正理由这样做时进行优化。

【讨论】:

以上是关于yEnc 用于二进制 websocket 数据的主要内容,如果未能解决你的问题,请参考以下文章

什么是文本编码最有效的二进制文件?

从 Tomcat 9 到客户端的 Websocket 二进制消息拆分为 2 个或更多 tcp 数据包

用于大量数据的 WebSockets 与 XHR

使用 HTTP 时,哪种编码更好,base64、yEnc 还是 uuencode?

WebSocket 频繁 onmessage 零拷贝

websocket.send() 参数