WebSocket在Internet Explorer下关闭 - 错误代码1006

时间:2016-11-21 11:35:51

标签: javascript php websocket phpwebsocket

我的WebSocket实现在Chrome和Firefox中正常运行。

在IE11中我收到此错误:

  

Websocket错误:网络错误12152,服务器返回无效或无法识别的响应

我使用js WebSocket类和reactPhp以及https://github.com/ratchetphp/RFC6455作为后端。

这是IE下的请求 - 响应数据。它看起来不错。 enter image description here

我检查过Websocket返回代码1006并清空原因。

如何解决IE11错误?

问题是在响应头中我应该只返回Sec-WebSocket-Protocols中的一个协议。

为什么它不能仅在IE下工作 - 因为我在后端用逗号+空格分割协议,但IE只用逗号分隔符返回没有空格的协议。其他浏览器使用逗号+空格返回协议。

例如,后端的代码看起来像是:

array_map(&#39; trim&#39;,explode(&#39;,&#39;,$ this-&gt; headers [&#39; Sec-WebSocket-Protocol&#39;])); < / p>

1 个答案:

答案 0 :(得分:1)

问题是在响应头中我应该只返回Sec-WebSocket-Protocols中的一个协议。

为什么它不能仅在IE下工作 - 因为我在后端用逗号+空格分割协议,但IE只用逗号分隔符返回没有空格的协议。其他浏览器使用逗号+空格返回协议。

例如,后端的代码看起来像是:

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