簡體   English   中英

WebSocket在Internet Explorer下關閉-錯誤代碼1006

[英]WebSocket closes under Internet Explorer - error code 1006

我的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('trim',explode(',',$ this-> headers ['Sec-WebSocket-Protocol'])));

問題在於,在響應標頭中,我應該僅在Sec-WebSocket-Protocols中返回一個協議。

為什么它僅在IE下不起作用-因為我在后端用逗號+空格分割了協議,但是IE僅使用逗號分隔符返回了不帶空格的協議。 其他瀏覽器以逗號+空格返回協議。

例如,后端的代碼如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM