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