2016-11-07 115 views
0

我在我的OSX中有一個簡單的html頁面,它有一個websocket客戶端,它必須連接到我的網站上的websocket服務器:wss:// www .mydomain/wsserver 連接不適用於使用OSX 10.12的Safari的最新版本,但正在使用Google Chrome和Safaro 9.0。Safari 10和OSX 10.12上的Websocket客戶端連接(最新版本)

我在很多論壇上的閱讀這個問題看過那部我必須把線:

<meta http-equiv="Content-Security-Policy" content="default-src * gap: data: blob: 'unsafe-inline' 'unsafe-eval' ws: wss:;"> 

但它不也行。 你知道哪些是添加到標籤的正確行嗎?

謝謝。

回答

0

問題來自基於Tomcat 8的websocket服務器。 Websocket服務器打開一個連接,然後當它向客戶端發送消息時,拋出以下異常:客戶端中止了連接。 在客戶端,JavaScript錯誤是:

WebSocket connection to 'wss://...' failed: Unexpected start character in header name. 

與其他瀏覽器如Chrome或Firefox沒有問題。

0

我面臨類似的問題。經過一番調查後,我發現它是由於自簽名SSL證書發生的。當我使用有效的SSL CA證書時,問題已修復。 Safari 10不允許websocket的自簽名證書。

或者,您可以在客戶端和服務器端使用Websocket的SockJs包裝器。當websocket不可用時,它會回退到xhr流等其他協議。