2013-11-21 61 views
0

我想在客戶端和服務器之間創建兩個WebSocket連接。第一個連接用於將關鍵時間應用程序的純文本發送到端口1337.通過在端口443上使用tls,第二個連接應用於安全數據傳輸。我使用以下代碼創建兩個WebSocket:是否可以在FireFox/Safari中創建多個WebSocket?

var ip = document.URL.split("/")[2].split(":")[0]; 
var wss = new WebSocket("wss://" + ip + ":443"); //secure 
var ws = new WebSocket("ws://" + ip + ":1337"); //realtime 

那麼,在Chrome和Opera中運行它就像一個魅力。但是當我在FF中測試它時,它似乎建立了第一個(安全)連接,並且當涉及到第二個連接時,中止全部執行代碼。在Safari中,我收到一條錯誤消息,表示服務器已關閉連接,但仍在運行。在這兩種情況下,它通過https下載HTML頁面和CSS等,但JavaScript執行失敗。

有沒有人知道這裏的問題是什麼?如上所述,在Chrome和Opera中,一切正常。我還沒有測試IE。

回答

0

所以我想我現在知道什麼這個問題:

的WebSockets不應在混合內容的環境中使用;也就是說,您不應該從使用HTTPS加載的頁面打開不安全的WebSocket連接,反之亦然。事實上,一些瀏覽器明確禁止這一點,包括Firefox 8及更高版本。

https://developer.mozilla.org/en-US/docs/WebSockets/Writing_WebSocket_client_applications#Security_considerations

所以好像我無法打開一個HTML頁面上的不同安全級別的兩個連接。

相關問題