【发布时间】:2011-04-01 07:53:15
【问题描述】:
是否有 websocket 库(如 jquery 的 ajax)我可以在浏览器上使用回退到 ajax 长轮询?
【问题讨论】:
标签: javascript http browser websocket
是否有 websocket 库(如 jquery 的 ajax)我可以在浏览器上使用回退到 ajax 长轮询?
【问题讨论】:
标签: javascript http browser websocket
我发现 Socket.IO 在 WebSocket 协议上实现了一个奇怪的任意层。我宁愿只来回传递原始数据,所以对于我的项目,我选择了web-socket-js。
web-socket-js 的工作方式与 Socket.IO 类似,如果 WebSocket 支持不可用,它会恢复使用 Flash 套接字。因此,它适用于所有支持 Flash 的主流浏览器(我自己测试过)。
请确保您在防火墙中打开端口 843,否则您会收到 Flash 安全策略错误。您可能还需要一个脚本来侦听端口 843...我使用 em-websocket 作为套接字服务器,我相信在它的自述文件中提供了一个指向提供此功能的 Perl 脚本的链接。
【讨论】:
具有 WebSockets 支持和后备长轮询解决方案的库可能还取决于服务器端技术,而不仅仅是浏览器客户端。例如,尝试查看socket.io。
【讨论】:
过去几个月我一直在使用 SignalR,它很棒。它做了 Socket.IO 所做的事情,但可能会更好。它降级如下:Web 套接字、服务器发送事件、永远帧、AJAX 长轮询。但仅适用于 .NET。
【讨论】:
是的,您还需要服务器支持。 Kaazing WebSocket 网关支持非常快速的仿真/Polyfill。如果你有像 Flash 这样的插件,它可能会使用它(机会性优化),但如果你不这样做,它会使用加密流模拟 WebSocket,这比长轮询更有效。它还带有 SSE 和跨文档消息传递支持和仿真,以及许多更高级别的协议抽象(JMS/Stomp、XMPP 等)
【讨论】:
Union Server 支持 WebSocket 并回退到彗星式 AJAX 通信。 Union 是一个用于创建连接应用程序的平台,例如在线多人游戏。
【讨论】: