Meine Einrichtung ist cloudflare -> nginx -> node.js Server. Ich habe bestätigt, dass es sich nicht um den node.js-Server handelt. Das Problem scheint die Kombination von Cloudflare und Nginx zu sein. Es funktioniert nur mit nginx und node.js.WebSockets trennen Verbindung mit Nginx und Cloudflare
Dies ist, was Nginx für die Websocket-Verbindung protokolliert: 162.158.75.125 - - [29/Oct/2016: 00: 01: 47 +0000] "GET/HTTP/1.1" 101 1047 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537,36 (KHTML, wie Gecko) Chrom/53.0.2785.143 Safari/537,36"
nginx config:
server {
listen 443 ssl;
server_name vectorwar.io;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
location/{
proxy_pass http://localhost:7000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 31104000s;
proxy_connect_timeout 31104000s;
proxy_send_timeout 31104000s;
}
}
[Kann ich webSockets mit CloudFare verwenden] (https://support.cloudflare.com/hc/en-us/articles/200169466-Can-I-use-CloudFlare-with-WebSockets-)? – jfriend00
Das löst mein Problem nicht. – user1781498
Vielleicht eine Auszeit irgendwo in der Leitung? Wie lange bleibt es offen, wenn die WebSocket still ist? Sendet das Senden einer Nachricht im Ping/Pong-Stil die WS-Verbindung regelmäßig, um zu verhindern, dass die Verbindung getrennt wird? – Brian