我正在用JavaScript实现流协议。协议是根据字节流而不是消息来定义的。我希望能够使用此协议与浏览器进行对话。
我过去曾使用Socket.io实现轻松的跨浏览器全双工网络。然而,在这种情况下,我需要BSD风格的套接字。理想情况下,我可以编写Node.js流API代码,并在浏览器中使用相同(或非常相似)的代码。
字节流有类似Socket.io的东西吗?即经过良好测试、跨浏览器、多传输、心跳等。
到目前为止,http://binaryjs.com/是最接近我需要的。不幸的是,文件显示它有些不成熟。我很高兴能找到一个更稳定、更广泛的浏览器支持库。
Socket.IO在幕后使用了大量技术,以使其非常易于访问和可靠。很多用户都会有Long Polling回退,这只是一个纯HTTP协议
虽然WebSockets确实支持二进制类型的消息,但它与Long Polling或任何其他回退技术不同,因此Socket.IO不会支持它,因为它不是所有传输上的东西。
WebSockets和Socket.IO也是纯基于消息的通信协议。在使用WebSockets的情况下,它会围绕每条消息进行成帧,这将增加流的开销
您需要的是基于流的通信,而不是基于消息的通信。据我所知,这是一个很长的话题,在网络世界里还不清楚。
尽管您可以将WebRTC视为流数据的未来可能性,它可能会满足您的需求
其他一些选项是为浏览器使用插件或扩展,如flash、unity、定制的东西等等,以实现真正的流媒体功能。