2016-11-21 2 views
-1

Meine WebSocket-Implementierung funktioniert in Chrome und Firefox korrekt.WebSocket wird unter Internet Explorer geschlossen - Fehlercode 1006

In IE11 bekomme ich diesen Fehler:

Websocket Error: Network Error 12152, The server returned an invalid or unrecognized response

I js WebSocket-Klasse und reactPhp und https://github.com/ratchetphp/RFC6455 für Backend verwenden.

Dies sind die Anfrage-Antwort-Daten unter IE. Es sieht ok für mich aus. enter image description here

Ich überprüft, dass Websocket Code 1006 zurückgibt und Grund leeren.

Wie kann ich den Fehler IE11 beheben?

Das Problem war, dass in Antwortheadern ich nur ein Protokoll in Sec-WebSocket-Protokolle zurückgeben sollte.

Warum es nicht nur unter IE funktioniert - weil ich die Protokolle in Backend durch Komma geteilt + Raum aber IE gibt die Protokolle ohne Raum nur mit Kommaseparator. Die anderen Browser geben die Protokolle mit Komma + Leerzeichen zurück.

Zum Beispiel der Code direkt im Backend sieht es wie folgt aus:

array_map ('trim', explode (' ' $ this-> Header [' Sec-WebSocket-Protokoll']));

Antwort

0

Das Problem war, dass in Antwort-Header ich nur ein Protokoll in Sec-WebSocket-Protokoll zurückgeben sollte.

Warum es nicht nur unter IE funktioniert - weil ich die Protokolle in Backend durch Komma geteilt + Raum aber IE gibt die Protokolle ohne Raum nur mit Kommaseparator. Die anderen Browser geben die Protokolle mit Komma + Leerzeichen zurück.

Zum Beispiel der Code direkt im Backend sieht es wie folgt aus:

array_map('trim', explode(',', $this->headers['Sec-WebSocket-Protocol'])); 
Verwandte Themen