在旧版本的 Safari 上,当我连接到我的 socket.io 时,我收到一个错误:
Error during WebSocket handshake: location mismatch: wss://domain.com/node/socket.io/1/websocket/id != wss://localhost:81/node/socket.io/1/websocket/id
最新版本的 Safari 似乎运行良好。我可以很好地与 Firefox 和 chrome 连接。
服务器端代码为:
var io = require('socket.io').listen(81, {resource: '/node/socket.io', secure: true});
客户端代码为:
socket = io.connect('https://domain.com/', {resource: 'node/socket.io', secure: true, 'connect timeout': 1000});
我通过 nginx 路由这个:
location /node {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:81;
}
如何修复此错误并使其与旧版本的 Safari 一起使用?