Я написал сервер веб-сокетов на c ++, который отлично работает с протоколом веб-сокетов 00 (сервер с ключом 1, ключом 2 в заголовке рукопожатия).
Теперь с новым обновлением я пытаюсь сделать то же самое для новогоспособ рукопожатия работать.Вот мой ответ сервера на запрос рукопожатия:
"HTTP / 1.1 101 Протоколы переключенияr \ n \ r \ n ";
, в котором ключ сервера рассчитывается правильно.Например:
запрос подтверждения связи:
GET / test HTTP / 1.1
Обновление: websocket
Соединение: Обновление
Хост: 192.168.123.102:8585
Sec-WebSocket-Origin: http://192.168.123.5
Sec-WebSocket-Key: YB0mPvJ5t8ggCeGUWY39uQ ==
Sec-WebSocket-Version: 8
заголовок ответа рукопожатия:
HTTP / 1.1 101 Протоколы коммутации
Обновление: веб-сокет
Соединение: Обновление
Sec-WebSocket-Accept: xt9iyCNryQTseELUkHPWjzxA2ts =
Я также проверяю свой алгоритм с приведенным здесь примером http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-08, и он выдает точно такой же ответ.
Однако я все еще получаю следующую ошибку:
"Ошибка при рукопожатии WebSocket: Sec-WebSocket-Accept mismatch"
Я использую Chrome 15 в качестве браузера.
Есть ли у вас какая-нибудь идея, что идет не так?
(также в Chrome Инспектор Сеть, он не показывает ответ, который имеет место, когда он не принимает рукопожатие (даже со старшимверсии))