繁体   English   中英

通过Web进行全双工通信,不带闪光灯插座

[英]full duplex communication over the web w/o flash sockets

我正在帮助开发的Web应用程序面临着一个众所周知的问题:我们希望能够让用户知道随时可能发生的各种事件等,基本上是随机发生的,并相应地更新其视图。 从本质上讲,我们需要允许服务器将请求推送到各个客户端,而不是客户端询问服务器。

我了解WebSockets是为解决该问题而做出的努力。 但是,经过一番研究,我了解到a)目前很少有Web浏览器提供本机websocket支持; b)为了解决这个问题,您可以使用闪存插槽或某种AJAX长轮询功能; c)必须使用特殊的websockets服务器。

现在,我们希望提供不带Flash的服务。 而且,任何类型的服务器都必须具有某种负载平衡功能,或者至少具有一些可以为其进行负载平衡的软件。

截至2008年,每个人都说基于彗星的解决方案(例如Bayeux)是解决此类情况的方法。 但是,自那时以来,各种协议似乎没有做太多工作,这最终导致了问题。

贝叶风味的彗星仍然是从事此类工作的合适工具吗? 如果没有,那是什么?

已证明行之有效的Comet / Bayeux的替代方案是XMPP服务器的组合,例如ejabberd或OpenFire和Jack Moffitt开发的StropheJS(他的网站为http://metajack.im/ )。 XMPP的局限性在于它只能传输文本,而不能传输二进制有效载荷。

WebSockets听起来像是解决问题的理想解决方案-我不建议您使用彗星/贝叶斯路径。 关于前两个问题:

a)目前很少有网络浏览器提供本机websocket支持

WebSocket服务器倾向于为没有本机WebSocket支持的浏览器提供仿真技术。 在这里,您可以了解 Kaazing提供的供应商之一的仿真 [免责声明:我为Kaazing工作]

b)[WebSocket仿真使用]闪存套接字或某种AJAX长轮询

情况并非如此。 做好仿真并非易事,但可以做到。 长时间轮询几乎是最后的选择。 例如,Kaazing网关总是比长轮询使用更好的仿真。

Kaazing还提供WebSocket网关的XMPP版本,允许您直接从JavaScript环境中使用XMPP来构建HTML5应用。 XMPP的基础传输层是WebSockets(本机或仿真)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM