連接在一箇舊版本的Safari WebSocket的位置不匹配,當我連接到我的socket.io,我得到一個錯誤:當Safari瀏覽器5.0通過nginx的HTTPS代理
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一起工作?