问题:每过5分钟左右,websocket就会自动关闭
原因:使用了nginx服务,nginx配置:
proxy_read_timeout(Default: 60s;),如果一直没有数据传输,连接会在过了这个时间之后自动关闭
参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout
Defines a timeout for reading a response from the proxied server. The timeout is set only between two successive read operations,
not for the transmission of the whole response. If the proxied server does not transmit anything within this time, the connection is closed.
可以通过心跳保持连接
参考:http://nginx.org/en/docs/http/websocket.html
the proxied server can be configured to periodically send WebSocket ping frames to reset the timeout and check if the connection is still alive.
在js中使用websocket发送信息之前,判断websocket对象是不是打开的,如果不是则重新构造/连接