我的WebSocket实现在Chrome和Firefox中正常运行。
在IE11中我收到此错误:
Websocket错误:网络错误12152,服务器返回无效或无法识别的响应
我使用js WebSocket类和reactPhp以及https://github.com/ratchetphp/RFC6455作为后端。
这是IE下的请求 - 响应数据。它看起来不错。
我检查过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>
答案 0 :(得分:1)
问题是在响应头中我应该只返回Sec-WebSocket-Protocols中的一个协议。
为什么它不能仅在IE下工作 - 因为我在后端用逗号+空格分割协议,但IE只用逗号分隔符返回没有空格的协议。其他浏览器使用逗号+空格返回协议。
例如,后端的代码看起来像是:
array_map('trim', explode(',', $this->headers['Sec-WebSocket-Protocol']));