Domanda

Ho implementato un server WebSocket in librevent e mentre non ho problemi con Chrome o Firefox, con IE10 Non sono nemmeno in grado di stabilire una connessione.

Qui le strette di mano:

IE10 Request:
GET /echo HTTP/1.1
Origin: 95.115.195.4
Sec-WebSocket-Key: rgPWUlUtk+h3CPWqk99OtA==
Connection: Upgrade
Upgrade: Websocket
Sec-WebSocket-Version: 8
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
Host: 95.115.195.4:5555
Cache-Control: no-cache

Server Response:
HTTP/1.1 101 Switching Protocols
Upgrade: Websocket
Connection: Upgrade
Sec-WebSocket-Accept: jGmgQ/jOvew8MU9o3bbqPG9PHlY=
Sec-WebSocket-Protocol: chat
.

Il debugger IE10 dice: Script12152: Errore WebSocket: risposta HTTP errata.Codice di stato 101

Qualcuno sa cosa sto facendo male?

Grazie

È stato utile?

Soluzione

Il client non ha inviato un elenco di sub-protocolli, ma il server ha inviato "chat" come il valore del sub-protocollo.Secondo pagina 19 di IETF 6455 WebSocket Specs (fine della sezione 4.1 Requisiti client): Il server dovrebbe inviare solo l'intestazione "SEC-WebSocket-Protocollo: subprotocol" tornare al client se il client ha inviato una intestazione "Sec-WebSocket-Protocol: subprotocol, ..." al server.Si noti che il client può inviare un elenco di sub-protocolli e, se lo fa, il server deve selezionarne uno dall'elenco per rispondere con.

È possibile che Firefox e Chrome siano troppo limitati e non aderenti alla versione corrente della specifica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top