WebSockets的替代方案

18
我非常期待WebSockets的前景。由于我以前构建了一些基于桌面套接字的游戏和 Web 游戏,因此我很想将这两种方法结合起来构建多人在线网页游戏,避免使用长轮询的 hack。
自从Firefox和Opera因安全问题禁用了 WebSockets (请见此处),这是否意味着WebSockets在不久的将来会结束?
如果WebSockets确实已经“死亡”(或者近期被推迟),除了长轮询之外,还有其他替代方案吗?
1个回答

28

WebSockets现在仍然活跃。只有Firefox 4 beta禁用了原生的WebSockets支持,Chrome和Safari没有这样做。Opera宣布他们不会发布带有WebSockets的版本,直到问题得到解决,但是从未发布带有WebSockets打开的alpha/beta版本。

此外,许多使用WebSockets的项目都使用web-socket-js(Flash)回退机制。对于这些项目,在没有WebSockets或已禁用WebSockets的浏览器上运行时,将使用web-socket-js。它的效率比本机低,但仍比长轮询具有更低的延迟。

但同样重要的是要记住,WebSockets比HTML5的大部分其他部分年轻得多(几个月前分离出来的原因之一),并且仍处于起草阶段。

此外,HyBi工作组(负责起草WebSockets协议)刚刚发布了一个更新的标准草案04,解决了浏览器供应商安全问题(特别注意问题不是因为WebSockets中的漏洞,而是WebSockets可能会被用来利用HTTP中介程序的漏洞)。

关于WebSockets的讨论在HyBi上仍然非常活跃。我希望在进入下一轮浏览器发布之前,可能会有另一个草案带来更多的改进。所有浏览器供应商都希望解决WebSockets所解决的问题(从浏览器进行低延迟、低开销的网络通信),因此向WebSockets的运动发展得很快。

目前的崩溃只是一个小插曲。但无论原生实现需要多长时间才能完成,您仍然可以使用web-socket-js在每个浏览器上使用WebSockets。

更新:

新的HyBi协议已经解决了安全问题等多个问题,预计本月(2011年11月)将正式发布。HyBi-17是该规范的最新版本。

IE10开发者预览版已包含WebSockets,Opera和Android浏览器是唯一没有默认启用WebSockets实现的浏览器(可以手动启用Opera的实现)。我相信这种情况很快会改变,同时web-socket-js已更新到HyBi协议系列,仍然是一个很好的polyfill/shim,适用于缺少默认支持的浏览器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接