【问题标题】:Websocket library for browsers?浏览器的 Websocket 库?
【发布时间】:2011-04-01 07:53:15
【问题描述】:

是否有 websocket 库(如 jquery 的 ajax)我可以在浏览器上使用回退到 ajax 长轮询?

【问题讨论】:

    标签: javascript http browser websocket


    【解决方案1】:

    我发现 Socket.IO 在 WebSocket 协议上实现了一个奇怪的任意层。我宁愿只来回传递原始数据,所以对于我的项目,我选择了web-socket-js

    web-socket-js 的工作方式与 Socket.IO 类似,如果 WebSocket 支持不可用,它会恢复使用 Flash 套接字。因此,它适用于所有支持 Flash 的主流浏览器(我自己测试过)。

    请确保您在防火墙中打开端口 843,否则您会收到 Flash 安全策略错误。您可能还需要一个脚本来侦听端口 843...我使用 em-websocket 作为套接字服务器,我相信在它的自述文件中提供了一个指向提供此功能的 Perl 脚本的链接。

    【讨论】:

    【解决方案2】:

    具有 WebSockets 支持和后备长轮询解决方案的库可能还取决于服务器端技术,而不仅仅是浏览器客户端。例如,尝试查看socket.io

    【讨论】:

    • Socket IO 很棒,但重要的是要了解它是 WebSockets 之上的一个实现层(回退到其他机制)。它不是“WebSockets 库”,而是一个使用 WebSockets(除其他外)进行客户端-服务器通信的框架。
    【解决方案3】:

    过去几个月我一直在使用 SignalR,它很棒。它做了 Socket.IO 所做的事情,但可能会更好。它降级如下:Web 套接字、服务器发送事件、永远帧、AJAX 长轮询。但仅适用于 .NET。

    https://github.com/SignalR/SignalR/wiki/Faq

    【讨论】:

      【解决方案4】:

      是的,您还需要服务器支持。 Kaazing WebSocket 网关支持非常快速的仿真/Polyfill。如果你有像 Flash 这样的插件,它可能会使用它(机会性优化),但如果你不这样做,它会使用加密流模拟 WebSocket,这比长轮询更有效。它还带有 SSE 和跨文档消息传递支持和仿真,以及许多更高级别的协议抽象(JMS/Stomp、XMPP 等)

      【讨论】:

        【解决方案5】:

        Union Server 支持 WebSocket 并回退到彗星式 AJAX 通信。 Union 是一个用于创建连接应用程序的平台,例如在线多人游戏。

        http://www.unionplatform.com

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-11
          • 1970-01-01
          • 1970-01-01
          • 2018-05-22
          相关资源
          最近更新 更多