关于websocket的连接稳定性问题
发布于 5 年前 作者 guona 11172 次浏览 来自 问答

服务端用的nginx作为代理,用xampp作为webserver,php写的websocket服务端。

不知为何,每次小程序连接websocket之后,经过1分钟左右时间(不一定的时间间隔),websocket就会自动断开。

我在app.js中做了定时监听,断开了就进行重新连接。但是我还是很奇怪为什么不能一直连接,只要网络本身是良好状态。

如图所示:

7 回复

这样也好,我们这边的处理是1分钟断开就断开了,重连发生在下次发送数据的时候,如果websocket处于断开状态,再重连,而不是在关闭后马上重连

我在nginx里面设置了65s的连接超时。然后在小程序里面,每隔50s会发送一条无用的消息过去,作为心跳,但是貌似还是会如此,我也是无解了。。。之前没用nginx的时候,在服务端用ws倒是还挺稳定的。不过要是发布,必须用wss,只能用nginx做代理来处理https和wss。

这个是由具体场景决定的,我目前做的这个事情是,需要好几个人之间进行互动的,如果有人没有连接上的话,肯定收不到相应的消息,所以必须保持连接状态

谢谢。谢谢。我试试

实现心跳要双向的,你发一个数据,服务端要回一条数据,不然,nginx转发代理的时候,认为客户端还连着,65s没有收到服务端的数据,会认为服务端的连接已无效,然后就会走关闭连接的过程

请问有php写的websocket的demo吗

nginx没有实现心跳,1分钟内没有传输数组就会自动断开websocket连接,重连的时候,没有onSocketOpen事件,我在写websocket库也遇到这个问题

回到顶部