【问题标题】:Cross-browser BSD-style sockets or Node.js streams跨浏览器 BSD 样式的套接字或 Node.js 流
【发布时间】:2013-06-25 11:14:23
【问题描述】:

我正在用 JavaScript 实现流式传输协议。该协议是根据字节流定义的,而不是消息。我希望能够与使用此协议的浏览器通信。

我过去曾使用过 Socket.io 来轻松实现跨浏览器全双工网络。但是,在这种情况下,我需要 BSD 样式的套接字。理想情况下,我可以编写 Node.js 流 API 并在浏览器中使用相同(或非常相似)的代码。

字节流有类似 Socket.io 的东西吗?即经过良好测试、跨浏览器、多传输、心跳等。

【问题讨论】:

    标签: node.js sockets websocket socket.io


    【解决方案1】:

    到目前为止,http://binaryjs.com/ 是最接近我需要的。不幸的是,文档表明它有些不成熟。我很高兴找到一个更稳定的库,支持更广泛的浏览器。

    【讨论】:

      【解决方案2】:

      Socket.IO 在幕后使用了大量技术,以使其非常易于访问和可靠。很多用户会有 Long Polling 回退,这只是纯 HTTP 协议。
      虽然 WebSockets 确实支持二进制类型的消息,但它与长轮询或任何其他后备技术不同,因此 Socket.IO 不会支持它,因为它不是在所有传输上都支持。

      WebSockets 和 Socket.IO 也是纯粹的基于消息的通信协议。如果使用 WebSocket,它会围绕每条消息进行框架化,这将增加流式传输的开销。
      您需要的是基于流的通信,而不是基于消息的通信。据我所知,这是一个很长的话题,在网络世界中仍然不清楚。

      尽管您可以将 WebRTC 视为未来流数据的可能性,但它可能会满足您的需求。
      其他一些选择是使用浏览器的插件或扩展,例如 flash、unity、bespoke stuff 等,以启用真正的流媒体功能。

      【讨论】:

        猜你喜欢
        • 2023-04-03
        • 1970-01-01
        • 2013-06-03
        • 1970-01-01
        • 2010-11-29
        • 1970-01-01
        • 2011-09-28
        • 1970-01-01
        • 2012-11-03
        相关资源
        最近更新 更多