socket.io 二进制缓冲区的优点?

Posted

技术标签:

【中文标题】socket.io 二进制缓冲区的优点?【英文标题】:socket.io binary buffer advantages? 【发布时间】:2014-09-01 22:37:09 【问题描述】:

目前,我通过我的socket.io 0.9 发送base64 字符串以在我的聊天应用程序中发送图像。

我升级到socket.io 1.0,,文档中说它支持Binary 数据,例如Buffers。我对缓冲区是什么知之甚少,但似乎可以让它发挥作用。

对我来说有什么好处,我会将我的所有 base64 字符串移动到 Buffers 并发送它们,而不是原始字符串。二进制支持对大消息有什么好处吗?

【问题讨论】:

我也使用base64,但是当文件很大时我遇到了一些问题,用户超时:***.com/questions/34734943/…打扰你了吗? 【参考方案1】:

socket.io 引入了发送二进制数据的能力主要是因为用户要求它。

如果直接将图像作为缓冲区发送,则会减少带宽。 Base64 比原始数据大小大约大 37%。

来源:base64 encoded image size

【讨论】:

谢谢!是不是也更稳定了?当我有一个坏的(移动)连接并发送一个大的 base64 时,连接有时会中断。 在与移动设备重新连接的情况下,可靠性是一个问题。您仍然需要一个确认系统才能知道客户是否收到了图像。

以上是关于socket.io 二进制缓冲区的优点?的主要内容,如果未能解决你的问题,请参考以下文章

如何将二进制数据从 Node.js socket.io 服务器发送到浏览器客户端?

通过 socket.io 1.0 实时音频

在 node.js 中使用 socket.io 通过 webrtc 广播实时音频

断开连接/错误时清除 socket.io 缓冲区

GRPC代替webapi Demo。

asp.net core 3.0 gRPC框架小试