我对WebSockets的前景感到非常兴奋。由于我过去已经构建了一些基于桌面插槽的游戏和网页游戏,所以我热衷于将这两种方法结合起来构建基于网络的多人游戏而不需要长时间的轮询黑客攻击。
由于Firefox和Opera由于安全问题(see here)而禁用了websockets的消息,是不久的将来WebSockets的终结?
如果WebSockets确实已经死亡(或在可预见的未来推迟),除了Long Polling之外还有其他选择吗?
答案 0 :(得分:27)
WebSockets还活着。只有firefox 4 beta禁用了本机WebSockets支持,Chrome和Safari都没有。 Opera宣布他们不会发布一个版本,直到问题得到解决,但从未发布alpha / beta版本,无论如何都打开了。
此外,许多(可能是大多数)使用WebSockets的项目都使用web-socket-js(Flash)后备。对于那些项目,当在没有WebSockets或禁用它的浏览器上运行时,将使用web-socket-js。它将比本机效率低,但仍然比长轮询更低的延迟。
但同样重要的是要记住,WebSockets比HTML5的大多数其他部分要年轻得多(部分原因是它在几个月前被拆分),而且它仍处于起草阶段。
此外,HyBi工作组(负责起草WebSockets协议)刚刚发布了一个解决浏览器供应商安全问题的updated draft standard 04(请注意,特别关注的问题不是因为WebSockets中的漏洞,而是WebSockets可用于利用HTTP中介中的漏洞。)
discussion about 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。