我刚刚开始使用 node.js,我正在使用 sockets.io 运行一个节点服务器,我需要向客户端发送一个字节缓冲区。
我知道这可以通过首先将字节缓冲区转换为 base64 并将其发送,然后将其转换回客户端来完成。但我想知道是否有更优雅的方式将字节流发送到客户端。
Socket.IO 1.0 现在支持二进制数据传输。请看这里。您可以使用 Blob、ArrayBuffer 和 File。
还有socket.io-stream https://github.com/nkzawa/socket.io-stream
https://github.com/binaryjs/binaryjs可以是一个解决方案。base 64 有大约 30% 的开销大小,因此如果您需要传输大量数据,它将变得低效。
将 binaryjs 与 socket.io 一起使用并不难。试试deliveryjs
它通过 socket.io 提供客户端和服务器之间的通信方式。
然而,这个模块也使用 base64 转换,这是一个缺点。