是否有websocket库(如jquery的ajax)我可以在浏览器上使用回退到ajax长轮询?
答案 0 :(得分:22)
我发现Socket.IO在WebSocket协议上实现了一个奇怪的,任意的层。我宁愿只是来回传递原始数据,所以对于我的项目,我选择了web-socket-js。
web-socket-js与Socket.IO的工作方式类似,如果WebSocket支持不可用,它将恢复使用Flash套接字。因此,它适用于所有支持Flash的主流浏览器(我自己测试过)。
只需确保在防火墙中打开端口843,否则您将收到Flash安全策略错误。您可能还需要一个脚本来侦听端口843 ...我使用了em-websocket作为套接字服务器,在其自述文件中我相信是一个提供此功能的Perl脚本的链接。
答案 1 :(得分:9)
具有WebSockets支持和回退长轮询解决方案的库可能还取决于服务器端技术,而不仅仅取决于浏览器客户端。例如,尝试查看socket.io。
答案 2 :(得分:5)
过去几个月我一直在使用SignalR,这太棒了。它做的就是Socket.IO所做的,但可能更好。它降级如下:Web套接字,服务器发送事件,永久帧,AJAX长轮询。仅适用于.NET。
答案 3 :(得分:0)
是的,您也需要服务器支持。 Kaazing WebSocket Gateway支持非常快速的仿真/ Polyfill。如果你有一个像Flash这样的插件可以使用它(机会优化),但如果你没有,它会使用加密流模拟WebSocket,这比长轮询更有效。它还带有SSE和Cross Document Messaging支持和仿真,以及许多更高级别的协议抽象(JMS / Stomp,XMPP等)
答案 4 :(得分:0)
Union Server具有WebSocket支持,可以回退到彗星式AJAX通信。 Union是一个用于创建连接应用程序的平台,例如在线多人游戏。