2011-10-23 49 views
1

在這個問題的時候,Mozilla的說,FF7實現版本8(草案10):挑選出的WebSockets草案和瀏覽器都支持

https://developer.mozilla.org/en/Firefox_7_for_developers#WebSockets

而且對鉻的最新博客文章日期08-01- 2011還表示,鉻支持相同草案10:

http://blog.chromium.org/2011/08/new-websocket-protocol-secure-and.html

都導致同一鏈接:

http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-10

然後在維基百科上,它說FF7和Chrome 14還實現了草案10:

http://en.wikipedia.org/wiki/WebSocket

但是當我測試FF7和Chrome 14 websocket.org

http://websocket.org/echo.html

Chrome 14通過,FF7失敗。順便說一句,IE 9也失敗了,但Opera 11.52通過了。那麼我怎麼知道哪個版本在websocket.org上運行,並確定FF7是否確實實現了草案10?

+0

雖然有一點在版本8和版本10之間的區別,Chrome實際上發送了一個'Sec-WebSocket-Version:8'頭文件,FYI。 – pimvdb

回答

1

如果你看一看到該頁面的源代碼,你會發現,他們正在實施這樣的API:

function testWebSocket() 
    { 
    websocket = new WebSocket(wsUri); 
    websocket.onopen = function(evt) { onOpen(evt) }; 
    websocket.onclose = function(evt) { onClose(evt) }; 
    websocket.onmessage = function(evt) { onMessage(evt) }; 
    websocket.onerror = function(evt) { onError(evt) }; 
    } 

但是,當涉及到Firefox,你應該在第一行中使用是可以使用它在FF:

websocket = new MozWebSocket(wsUri); 

SICE了FF的朋友把它命名爲這樣的:d

希望這有助於!

例子:

function connect() { 
    if ('WebSocket' in window) { 
     websocket = new WebSocket('ws://' + window.location.hostname + ':4502/chat'); 
    } 
    else if ('MozWebSocket' in window) { 
     websocket = new MozWebSocket('ws://' + window.location.hostname + ':4502/chat'); 
    } 
    else { 
     //not supported 
     return; 
    } 
} 

WebSocket versions and backwards compatibility

0

http://websocket.org/echo.html網站已經更新 - 它的工作與FF7:

一旦你點擊連接,你會得到一個 「警告」 關於MozWebSocket對象: 信息:該瀏覽器支持使用MozWebSocket構造函數的WebSocket