Socket.ioを使用してJavascript(React)アプリケーションでWebSocketを設定しようとしています。WebSocketの接続に失敗しました:reserved1 = 0、reserved2 = 1、reserved3 = 1
Socket.ioクライアント(v1.4.5)からpolling
トランスポートを使用すると、すべて正常に動作します。 しかし、私は実際と安全なWebSocketを(wss://
プロトコル)を使用したいと思います...
私のサーバーは、私の仮想ホストのプロキシとしてのDebian 7を実行してnginxのv1.2.1デベロッパーである、と私のNode.jsアプリ(使用してソケット.io v1.4.5)。
私のドメイン名(api.tribeez.net)は(SSL、すなわちwss://
上を含む)がjust announcedフルWebSocketをsupport、CloudFlareを経由して設定されています。
Chrome(v50.0)でアプリを起動すると、Chromeのネットワークパネル(状態pending
)にWebSocket接続が表示されます。 しかし、1分後、WebSocketの接続を切断(ステータス101 Switching Protocols
)とコンソールが私にスローが、これは私が何を得るWebSocket connection to 'wss://api.tribeez.net/socket.io/?EIO=3&transport=websocket&t=LI3t1dh' failed: One or more reserved bits are on: reserved1 = 0, reserved2 = 1, reserved3 = 1
socket.ioデバッグをオンに紛らわしいです:
Fri, 06 May 2016 02:23:37 GMT socket.io:server incoming connection with id L43EOXmwsqkgCMVJAAAD
Fri, 06 May 2016 02:23:37 GMT socket.io:client connecting to namespace/
Fri, 06 May 2016 02:23:37 GMT socket.io:namespace adding socket to nsp/
Fri, 06 May 2016 02:23:37 GMT socket.io:socket socket connected - writing packet
Fri, 06 May 2016 02:23:37 GMT socket.io:socket joining room /#L43EOXmwsqkgCMVJAAAD
Fri, 06 May 2016 02:23:37 GMT socket.io:client writing packet {"type":0,"nsp":"/"}
Fri, 06 May 2016 02:23:37 GMT socket.io-parser encoding packet {"type":0,"nsp":"/"}
Fri, 06 May 2016 02:23:37 GMT socket.io-parser encoded {"type":0,"nsp":"/"} as 0
Transport=websocket, query=/socket.io/?EIO=3&transport=websocket&t=LI3t1dh
Fri, 06 May 2016 02:23:37 GMT socket.io:socket joined room /#L43EOXmwsqkgCMVJAAAD
Fri, 06 May 2016 02:23:37 GMT socket.io:socket joining room tribe#1
Fri, 06 May 2016 02:23:37 GMT socket.io:socket joined room tribe#1
Fri, 06 May 2016 02:24:37 GMT socket.io:client client close with reason transport close
Fri, 06 May 2016 02:24:37 GMT socket.io:socket closing socket - reason transport close
そして、これはありますnginxのログ:
2016/05/06 04:24:37 [error] 28383#0: *549 upstream timed out (110: Connection timed out) while reading upstream, client: xxx.xxx.xxx.xxx, server: api.tribeez.net, request: "GET /socket.io/?EIO=3&transport=websocket&t=LI3t1dh HTTP/1.1", upstream: "http://127.0.0.1:3010/socket.io/?EIO=3&transport=websocket&t=LI3t1dh", host: "api.tribeez.net"
そして、このアプリのための私のnginxのconfに:
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
}
server {
server_name api.tribeez.net;
location/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:3010;
}
location /socket.io/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:3010;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
なぜそれが閉じられるのか?私はそれを定期的にpingする必要がありますか?
私はまったく同じ問題に直面していますが、nginxはありません。私のsocketioクライアントが私のsocketioサーバから提供されています。それは異なるクライアント/サーバーのバージョンかもしれません...? –
いいえ... ...詳細と新しい質問を投稿する可能性がありますか?私は個人的にあなたを助けるのに十分な知識がありません... – antoine129
ああ、私は別の質問をして、それはウイルス対策だったと心配しないでください。それはウェブソケット接続をブロックしていました-_- –