MozWebSocket не отвечает на рукопожатие - PullRequest
0 голосов
/ 04 февраля 2012

Firefox 10 не хочет принимать (правда, не знаю?) Мое рукопожатие.Вне всяких сомнений, это Mozilla, затем используйте MozWebSocket, застрахованный от WebSocket.Мой заголовок ответа сервера:

                $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 (ОТКЛЮЧИТЬ).

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 04 февраля 2012

Подтвердили ли вы, что правильно и полностью читаете вводные заголовки?Основное различие в обработке рукопожатия websocket между Chrome и FireFox в настоящее время заключается в том, что FireFox более полно выполняет запросы рукопожатия websocket с помощью кэширования, принимает кодировки, пользовательский агент и т. Д. В частности, дважды проверьте заголовок «Connection», который может иметься в RFC.несколько значений и делает на FireFox, но не на Chrome.Заголовок соединения FireFox обычно выглядит так: «Соединение: keep-alive, Upgrade».Это может запутать парсеры рукопожатия, которые не ожидают, что заголовок будет иметь несколько значений.

В противном случае ваш ответ на рукопожатие будет выглядеть правильно для меня, если предположить, что значение $ accept вычисляется правильно, что звучит так, как если быChrome принимает его.

0 голосов
/ 01 августа 2012

Я только что понял, что это мой Firefox (?) Fould. Я удалил FF, удалил все личные данные (серьезно все!), И я установил FF еще раз ... И та же проблема! Так что я не знаю, если это моя проблема с Windows или что-то еще ... Неважно ... спасибо за все.

...