Рукопожатие Websocket манипуляция - PullRequest
0 голосов
/ 06 мая 2018

Чтобы создать соединение веб-сокета в javascript, мы можем использовать API веб-сокета, например:

const socket = new WebSocket('ws://localhost:8080');

тогда браузер инициирует рукопожатие через http get запрос с этими заголовками:

Upgrade: websocket
Connection: Upgrade 

и ответ сервера:

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

после этого клиенту и серверу будет открыто соединение с веб-сокетом.

Так что мой вопрос: возможно ли сделать рукопожатие другими методами? и если возможно позаботиться о рукопожатии через javascript, например, xhr или что-то подобное?

1 Ответ

0 голосов
/ 06 мая 2018

Рукопожатие WebSockets определяется только с помощью GET, см. стандарт . Кроме того, поскольку WebSockets не вписываются в схему запроса-ответа HTTP, а по существу создают постоянное соединение, где и сервер, и клиент могут писать независимо друг от друга, невозможно использовать WebSockets с использованием XHR, который ожидает один ответ на один запрос. запрос.

...