Не удается заставить работать подключение через веб-сокет в Chrome 19

У меня есть клиент/сервер веб-сокета, который отлично работает с Firefox и Chrome 18. Он не работает с бета-версией Chrome 19. Я подозреваю, что это связано с тем, что этот браузер теперь использует расширение фрейма deflate -, которое мой сервер не поддерживает.

Бета-версия Chrome 19 отправляет это в своем рукопожатии :«Sec -WebSocket -Extensions :x -webkit -deflate -кадр»

Мой сервер отправляет обратно :"Sec -WebSocket -Extensions :"

Но либо это неправильный способ отклонить расширение, либо есть что-то еще, чего я не улавливаю. Это единственное, что в рукопожатии отличается от того, что я вижу в работающих браузерах.

Редактировать :Вот дополнительная информация. Это рукопожатия, захваченные Wireshark.


Рукопожатие с использованием Firefox 12:

GET /chatserver HTTP/1.1
Хост:(опущен для этого поста)
Пользователь -Агент :Mozilla/5.0 (Windows NT 6.1; ВАУ64; rv :12.0 )Gecko/20100101 Firefox/12.0
Принять :text/html,application/xhtml+xml,application/xml;q=0.9, / ;q=0.8
Принять -Язык :en -us,en;q=0.5
Принять -Кодирование :gzip, deflate
ДНТ :1
Соединение :поддерживает -в рабочем состоянии,Обновление
Сек -WebSocket -Версия :13
Источник:(опущен для этого поста)
Секунда -WebSocket -Ключ :2TKm4ozUQdNP17Lobt7IBg==
Прагма :без кэша -
Кэш -Управление :нет -кеш
Обновление :websocket

HTTP/1.1 101 Протоколы переключения
Обновление :веб-сокет
Соединение :Обновление
Sec -WebSocket -Accept :pSUB3BT9YUUd9n3mOeWY/1uVqJE=


Рукопожатие с использованием Chrome 18:

GET /chatserver HTTP/1.1
Обновление :веб-сокет
Соединение :Обновление
Хост:(опущен для этого поста)
Источник:(опущен для этого поста)
Секунда -WebSocket -Ключ :zuHLEC8pGvAMadarhCLXFA==
Секунда -WebSocket -Версия :13

HTTP/1.1 101 Протоколы переключения
Обновить :веб-сокет
Соединение :Обновление
Sec -WebSocket -Accept :LMBSq6Bk9Kiv+zAbQlAL899pfzc=


Рукопожатие с использованием Chrome 19:

GET /chatserver HTTP/1.1
Обновление :веб-сокет
Соединение :Обновление
Хост:(опущен для этого поста)
Источник:(опущен для этого поста)
Секунда -WebSocket -Ключ :TbwnVcuUiqGgZn7hxvxzvQ==
Сек -WebSocket -Версия :13
Sec -WebSocket -Extensions :x -webkit -deflate -frame

HTTP/1.1 101 Switching Protocols
Обновление :веб-сокет
Соединение :Обновление
Сек -WebSocket -Принять :D45BJ+Vfydy1Upcs3Hze/nuiaS8=
Секунда -WebSocket -Расширения:


Все ответы сервера имеют окончания строки \r\n -и включают дополнительный \r\n в конце сообщения.

FF12 и Chrome18 работают--Chrome19 не работают . В Chrome19,самый следующий пакет после ответа сервера на рукопожатие — это FIN/ACK. Соединение закрыто.

прим. Я также пытался использовать дефис в качестве значения Sec -WebSocket -Extensions, но это тоже не сработало.

6
задан Aaron 6 May 2012 в 06:08
поделиться