Вопрос

Я написал сервер WebSocket в C ++, который отлично работает с протоколом websocket 00 (один с Key1, Key2 в заголовке рукопожатия).

Теперь с новым обновлением я пытаюсь сделать то же самое для новой работы по сбору. Вот мой ответ на сервер на запрос рукопожатия:

"Http/1.1 101 Protocols r nupgrade: websocket r nconnection: обновление r nsec-websocket-accept:" + serverkey + " r n r n";

в каком серверке вычисляется правильно. В качестве примера:

Запрос на рукопожатие:
Получить /тестировать http /1.1
Обновление: WebSocket
Соединение: обновление
Ведущий: 192.168.123.102:8585
Sec-Websocket-Origin: http://192.168.123.5
Sec-websocket-key: yb0mpvj5t8ggceguvy39uq ==
Sec-Websocket-версия: 8

Заголовок ответа рукопожатия:
HTTP/1.1 101 протоколы переключения
Обновление: WebSocket
Соединение: обновление
Sec-websocket-accept: xt9iycnryqtseelukhpwjzxa2ts =

Я также проверяю свое алго с примером здесь http://tools.ietf.org/html/draft-ietf-hybi-thewebocketcocketprotocol-08 и это дало точно такой же ответ.

Однако я все еще получаю следующую ошибку:
«Ошибка во время рукопожатия WebSocket: несоответствие SEC-WebSocketCocket-Accept»

Я использую Chrome 15 в качестве браузера.

Вы хоть представляете, что идет не так?

(Также в сети Chrome Inspector, он не показывает ответ, который имеет место, когда он не принимает рукопожатие (даже с более старыми версиями))

Это было полезно?

Решение

Я действительно узнал, что была основной проблемой.

Ключ, который я использовал для кодирования BASE64, был, был

YB0mPvJ5t8ggCeGUWY39uQ==
258EAFA5-E914-47DA-95CA-C5AB0DC85B11

вместо

YB0mPvJ5t8ggCeGUWY39uQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11

Дополнительная проблема была всей проблемой.

ОДНАКО, Теперь, когда я получаю подключенное сообщение (клиент WS успешно подключен к WS Sear), я не могу отправить или получить что -либо. Проблема в Серверная сторона.

Знаете ли вы, каковы изменения на стороне сервера со времен более старого протокола WebSocket? Я меняю только ответ рукопожатия, и этого не кажется достаточно.

Другие советы

Существует другой протокол кадрирования, когда клиент отправляет данные. Ранее это было довольно просто. Теперь это намного сложнее. Пожалуйста, обратитесь к спецификации WebSockets RFC6455.

http://tools.ietf.org/html/rfc64555#section-5.2

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top