如何使用socket.io发送原始数据

时间:2015-06-08 08:31:13

标签: node.js websocket socket.io binary-data bandwidth

我在尝试使用websockets时减少socket.io带宽。我切换到二进制数据,但查看浏览器开发人员控制台,数据包将按以下方式发送:

[ 'type of the packet (first argument of .emit)', associated data ]

我只使用一种数据包类型,因此这会导致不必要的开销 - 发送无用的字节,并且无缘无故地对整个事件进行json编码。

如何摆脱数据包类型并只发送原始数据?

1 个答案:

答案 0 :(得分:2)

socket.iowebSocket之上的抽象。为了支持它提供的功能,它增加了消息的一些开销。消息名称就是这样一个开销,因为它是一个消息系统,而不仅仅是一个数据包传送系统。

如果你想从传输中挤出所有字节,那么你可能需要摆脱socket.io并只使用一个普通的webSocket来控制每个数据包的更多内容(尽管你必须重新实现socket.io为你做的一些事情。)

使用node.js中的socket.io,您可以通过发送ArrayBuffer或Buffer来发送二进制文件。在浏览器中,您可以通过发送ArrayBuffer或Blob来发送二进制文件。

相关问题