浏览器的 Websocket 库?

Posted

技术标签:

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

我发现以下链接有助于托管策略脚本 - briangonzalez.org/posts/websockets-polyfill【参考方案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

【讨论】:

以上是关于浏览器的 Websocket 库?的主要内容,如果未能解决你的问题,请参考以下文章

015_NGINX作为WebSocket Proxy的设置

websock第一次连不上window

springboot2 -广播式WebSocket

WebSocket是什么?

WebSocket实现Java后台消息推送

网页打印时提示websocket没有准备好