2013-02-22 185 views
-1

簡單的問題:我 幾個socket.io回退對其中的WebSockets瀏覽器使用的後備網站(http://socket.io/#browser-support瀏覽器的WebSocket回退和支持

但我不能找到(即使是長谷歌會後)上看到。 我問的原因是我想避免長時間投票回退,所以我需要知道哪些瀏覽器和版本會使用它。

[編輯]看到,因爲這得到downvoted我需要carify自己:

我需要知道哪些瀏覽器/版本最終回落到長輪詢。我不能簡單地假設在我的情況下使用長輪詢,因爲長輪詢會帶來問題。希望這使得它更清楚,爲什麼我不容易找到它..

[編輯2]對不起,我是如此含糊不清:

我有點看現在,我基本上問哪個瀏覽器使用回退。但這不是我想問的,因爲我已經知道這一點。我的意思是詢問如何檢測或知道將使用哪種回退。對於我的應用程序閃光燈沒有問題,但長時間投票可能會出現問題。謝謝!

+1

http://caniuse.com/websockets我將承擔其餘使用閃光燈或長時間輪詢。 – rlemon 2013-02-22 16:29:01

回答

3

如果你想知道哪些瀏覽器提前工作,那麼Can I Use是一個很好的參考。

如果你希望它運行時在你的應用程序來檢測的支持,那麼你可以測試爲WebSocket對象的存在:

if (WebSocket) { 
    // Use websockets 
} else { 
    // Fallback will be used 
} 

(此代碼應在客戶端運行,在瀏覽器 - 而不是你的Node.js應用程序本身)

編輯:

如果您需要知道究竟什麼是後備正在使用,創建一個套接字,然後檢查socket.transport.name屬性。 (所以如果你的套接字被稱爲「套接字」,你將檢查socket.socket.transport.name)。它可以是下列之一:

  • 的WebSocket
  • HTMLFILE
  • XHR輪詢
  • JSONP輪詢
+0

感謝您的回答。我知道IE <10使用回退例如。但有沒有一種方法可以檢測到哪個後備軟件正在被使用。閃回回退很好,但長時間的輪詢解決方案可能會帶來問題。 – jansmolders86 2013-02-22 19:50:14

+0

謝謝!這真是我需要的! – jansmolders86 2013-02-23 10:26:21