2012-02-04 47 views
0

Firefox 10不會接受(我真的不知道?)我的握手。 Offcorse這是Mozilla然後使用WebSocket保存的MozWebSocket。我的服務器響應頭是:MozWebSocket沒有迴應握手

   $reply = "HTTP/1.1 101 Switching Protocols\r\n" . 
         "Upgrade: websocket\r\n" . 
         "Connection: Upgrade\r\n" . 
         "Sec-WebSocket-Accept: {$accept}\r\n\r\n"; 

它的工作原理的Chrome 16完美之下,但在Firefox它只是在等待着什麼,即使服務器比說握手。然後過了一段時間客戶端轉到狀態3(DISCONNECT)。

任何想法?

回答

0

我剛剛意識到它是我的Firefox(?)模塊。我卸載了FF,刪除了整個私人數據(認真的一切!),並且我已經安裝了FF一次......而且同樣的問題!所以我不知道這是我的Windows問題還是......無所謂......感謝所有的一切。

3

您是否確認您正在正確且完整地閱讀開頭的標題? Chrome和FireFox之間的websocket握手處理的主要區別在於FireFox通過緩存,接受編碼,用戶代理等更全面地填充websocket握手請求。特別是仔細檢查「連接」標題,該標題根據RFC可以具有多個值,並在FireFox上執行,但不在Chrome上執行。 FireFox連接頭通常如下所示:「連接:保持活動,升級」。這可能會導致握手解析器不期望該頭具有多個值。

否則,您的握手響應對我來說看起來是正確的,假設正確計算$ accept值,這聽起來好像是Chrome正在接受它。

+0

是的,firefox發送「連接:保持活着,升級」,我該怎麼辦? – marverix 2012-02-04 16:54:44