2011-07-30 49 views
0

我認爲Socket.IO應該選擇最好的方法,找到與該系列服務器 連接,Socket.io恢復到XHR/JSONP輪詢無緣無故

Websocket , 
    FlashSocket 
    and then JSONP 

但我在節點0.4.9(在用cygwin編譯的窗口上)運行socket.io 0.7.7的服務器轉到XHR/JsonP輪詢,沒有任何明顯的原因。我已經檢查過80-89的所有端口,只是爲了確保問題始終保持不變。

我也查在雙方控制檯日誌。 Firebug給出沒有錯誤只是向我展示了XHR獲取請求。

,並在服務器控制檯它給了我:

info - socket.io started 
    debug - client authorised // i dunno why this is occuring though 
    info - handshake autorised 154845454664764 
    setting request Get/socket.io/1/xhr-polling/154845454664764 
    debug - setting poll timeout 

。 。 。等等 記住傢伙有什麼理由?

+0

爲什麼沒有理由你投票了嗎? – ShrekOverflow

回答

1

您可能使用一個版本的Firefox that has WebSockets disabled

警告:除其他事項外,一個重要原因是的WebSockets目前 默認情況下在Firefox 4禁用5是一個安全 問題中的協議設計的發現。目前不建議在生產環境中使用Firefox的 版本的WebSockets。配置和設置network.websocket.enabled 偏好爲true: 如果您仍想使用WebSockets進行實驗,可以通過 開約這樣做。您還需要設置 network.websocket.override安全塊偏好真正爲了 允許初始化WebSocket連接。

+0

那麼它應該支持右側的閃存插座:P。閃光燈插座只是作爲一個運輸選項旁邊的websocket – ShrekOverflow

+0

@Darkyen |哦耶!這是正確的......呃,閃光燈是否有'.swf'存在並且可以訪問? – foxy

+0

端口843是否可訪問? – mak

1

火狐確實有禁用的WebSockets。標準socket.io沒有flashsocket所以你必須將它添加到您的configuration =>

io.set('transports', [      // enable all transports (optional if you want flashsocket) 
    'websocket' 
    , 'flashsocket' 
    , 'htmlfile' 
    , 'xhr-polling' 
    , 'jsonp-polling' 
]); 

然後,它應該工作得很好。


debug - client authorised // i dunno why this is occuring though 

socket.io可以做authorization

+1

謝謝^ _ ^我不得不將它移動到一個linux虛擬機上,但是我認爲windows編譯版本必須與win7有問題「ENHANCED 「安全宣傳 – ShrekOverflow