2016-12-15 141 views
0

我在我的Ionic 2应用程序中使用socket.io-client。一切工作就像在Android和iOS上的魅力< = 9. 在iOS 10上,我无法建立连接。我做错了什么,或者我想念什么?Socket.io,无法连接iOS 10

“socket.io客户”: “^ 1.7.2”

this.socket = io.connect(Resources.Constants.API.SERVER_DOMAIN, { 
     'transports': ['websocket', 'xhr-polling'], 
     'query': 'token=' + myToken 
    }); 

    alert('test:' + this.socket.id); // undefined 
    alert('test:' + this.socket.connected); // false 

任何帮助,将不胜感激!

回答

1

事实证明,最后的Safari浏览器对CSP比其他浏览器更挑剔。

将ws:// * wss:// *添加到我的Content-Security-Policy中的connect-src中解决了我的问题。

<meta http-equiv="Content-Security-Policy" content="default-src data: gap://* file://* https://ssl.gstatic.com *; img-src 'self' * data:; style-src 'self' 'unsafe-inline' *; script-src 'self' 'unsafe-eval' 'unsafe-inline' *; connect-src 'self' * ws://* wss://*;">