Safari 10和OSX 10.12(最新版本)上的Websocket客户端连接

时间:2016-11-07 12:36:14

标签: websocket safari

我的OSX中有一个简单的html页面,它有一个websocket客户端,里面必须连接到我网站上的websocket服务器:wss://www.mydomain/wsserver 连接无法在最新版本的OS OS OS 10.12上运行,但可以在Google Chrome和Safaro 9.0上运行。

我在很多论坛上都读过这个问题,我必须把这句话放在一边:

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

但它也不起作用。 您知道要添加到标签的正确行吗?

感谢。

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。经过一些调查后,我发现它是由于自签名SSL证书而发生的。当我使用有效的SSL CA证书时,问题得到了解决。 Safari 10不允许websocket的自签名证书。

或者,您可以在客户端和服务器端使用SocketJs包装器覆盖websocket。当websocket不可用时,它将回退到xhr流等其他协议。

答案 1 :(得分:0)

问题来自于基于Tomcat 8的websocket服务器。 Websocket服务器打开连接,然后当它向客户端发送消息时,抛出以下异常:客户端中止连接。 在客户端上,javascript错误是:

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

Chrome或Firefox等其他浏览器没有问题。