评论

微信小程序webSocket生命周期

微信小程序webSocket生命周期

测试的环境:vivo z5 Android9.0 webSocket未实现团活

当小程序前后端之间建立webSocket后,我测试过以下4种情况。

  1. webSocket建立的小程序页面,亮屏且前后台之间无websocket交互。------ 5分钟后,服务端主动断开websocket连接,小程序端触发wx.onSocketClose(),未触发wx.onSocketError();

  2. webSocket建立的小程序页面,熄屏且前后台之间无websocket交互。------ 5分钟后,服务端主动断开websocket连接,小程序端触发wx.onSocketClose(),未触发wx.onSocketError();

  3. webSocket建立的小程序页面,小程序切微信后台。------ 10s内,小程序端主动断开websocket连接,小程序端触发wx.onSocketClose(),未触发wx.onSocketError();

  4. webSocket建立的小程序页面,微信应用切手机后台。------ 10s内,小程序端主动断开websocket连接,小程序端触发wx.onSocketClose(),未触发wx.onSocketError();

补充:实测上述情况1、2中,提到的5分钟,与服务端程序所设置的session超时时间无关。

最后一次编辑于  2019-08-11  
点赞 6
收藏
评论

1 个评论

  • CZ
    CZ
    2020-08-08

    经过了实际测试,前两种情况和您说的有些不同:

    我的后端是php laravel,使用的是swoole的websocket服务器,我在后端没有为websocket服务器设置任何的针对客户端的心跳轮询,也就是在网络连接正常情况下,保证后端在任何时候都不会主动断开连接。

    在以上基础之上,测试的结果是,只要小程序没有切微信后台或者没有切手机后台,在websocket建立的页面,是不会在客户端主动断开连接的,在我试验的基础上(后端也不会主动断开连接的情况下),不论手机亮屏或者息屏,ws连接都是不会中断的。我每种情况试了有帮个小时。哈哈。

    后两种情况,官方文档上描述的有,是完全正确的。

    2020-08-08
    赞同
    回复
登录 后发表内容