2016-11-21 20 views
-1

WebSocketの実装はChromeとFirefoxで正しく機能します。 IE11ではWebSocketがInternet Explorerで終了する - エラーコード1006

私はこのエラーを取得する:

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

私はJSのWebSocketクラスとreactPhpを使用し、バックエンドのためのhttps://github.com/ratchetphp/RFC6455

これはIEの要求応答データです。それは私には大丈夫です。 enter image description here

Websocketがコード1006を返し、空白の理由を確認しました。

IE11エラーを修正するにはどうすればよいですか?


問題は、応答ヘッダーでは、私はSec-WebSocket-Protocolsで1つのプロトコルだけを返すべきだったということでした。

なぜそれが唯一のIEでは動作しません - 私はコンマ+スペースでバックエンドでのプロトコルを分割するが、IEはカンマ区切りでスペースなしのプロトコルを返すため。他のブラウザはカンマ+スペースでプロトコルを返します。

は、例えば、コードは、右のバックエンドでそのようになっています

array_mapを( 'トリム'、 ' '(爆発、の$ this - >ヘッダ[' 秒-のWebSocket-プロトコル']));

答えて

0

問題は、レスポンスヘッダに、私は秒-のWebSocket-プロトコルで唯一のプロトコルを返さなければならないということでした。

なぜそれが唯一のIEでは動作しません - 私はコンマ+スペースでバックエンドでのプロトコルを分割するが、IEはカンマ区切りでスペースなしのプロトコルを返すため。他のブラウザはカンマ+スペースでプロトコルを返します。

例えば右バックエンドのコードは、それはそれのようになります。

array_map('trim', explode(',', $this->headers['Sec-WebSocket-Protocol'])); 
関連する問題