2010-12-19 137 views
15

我對WebSockets的前景感到非常興奮。由於我過去已經構建了一些基於桌面套接字的遊戲和網頁遊戲,因此我非常希望將這兩種方法結合在一起,構建基於網絡的多人遊戲而不需要長時間輪詢。WebSockets的替代品

由於Firefox和Opera因安全問題(see here)禁用了網絡套接字的消息,WebSockets在不久的將來會結束嗎?

如果WebSockets確實死了(或在可預見的未來推遲),除了長輪詢之外是否還有其他選擇?

回答

27

WebSockets是活着的,踢。只有Firefox 4 beta禁用了原生的WebSockets支持,Chrome和Safari都沒有。歌劇院宣佈他們不會發佈一個版本,直到問題得到解決,但從未發佈過一個alpha/beta版本,並且無論如何都打開了它。

另外,使用WebSockets的很多(可能大部分)項目都使用web-socket-js(Flash)回退。對於這些項目,當在沒有WebSocket的瀏覽器上運行或禁用它時,將使用web-socket-js。它會比本地效率低,但仍比長輪詢的低得多。

但是重要的是要記住WebSockets比HTML5的大多數其他部分(幾個月前分開的部分原因)要年輕得多,而且它仍然處於草稿階段。此外,HyBi工作組(負責起草WebSockets協議)剛剛發佈了一個updated draft standard 04,它解決了瀏覽器供應商的安全問題(特別要注意的是,擔心並不是因爲WebSocket中的漏洞,而是因爲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協議系列,並仍然是一個很好的填充/填充瀏覽器沒有默認支持。