Websocket连接50s自动断开的问题
在本地跑正常,在一个服务器上跑出现这个问题,具体的情况是:前后端websocket连接50s左右后出现关闭,重新连接仍可连上,此外发现后端的消息前端能收到,但是前端的消息后端收不到。
前端日志:
WebSocket连接关闭: 1006
WebSocket连接断开
WebSocket重连尝试 1/5
WebSocket连接成功
服务器只配置了80端口,但是上层应该有一个转发,可以使用https访问,本地的相关配置如下:
location ^~ /ws {
add_header X-Debug-Upgrade $http_upgrade;
proxy_pass http://127.0.0.1:50008/ws; # daphne (ASGI) 端口
proxy_http_version 1.1;
proxy_set_header Upgrade "websocket";
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_buffering off; # 关闭缓冲,WebSocket需要实时传输
tcp_nopush on;
tcp_nodelay on;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
注:一开始出现前端尝试连接后端,后端立马连接上了,但是前端显示在等待,然后50s左右后,前端显示连接成功立即断开,后端显示断开的情况,把本地的nginx取消缓冲解决,但是仍有目前的问题。