小程序退到后台,IM 链接断开了,但是还能听到音频资源,这是怎么回事?

问题场景分析:

音视音视频通话是依赖 IM 连接的

如果 RTC Server 1分钟内没有收到 RTCPing 的回应,会将用户踢出房间,所以从问题的场景来看是属于正常现象,IM 异常断开,音视频不会立马就断开

同理如果用户在 1 分钟内连接成功了,RTC Server 不会执行提出房间动作,音视频通话能正常进行

注意点:

小程序进入「后台」状态一段时间后(目前是 5 秒),微信会停止小程序 JS 线程的执行,小程序进入「挂起」状态。此时小程序的内存状态会被保留,但开发者代码执行会停止,事件和接口回调会在小程序再次进入「前台」时触发。

当开发者使用了后台音乐播放、后台地理位置等能力时,小程序可以在「后台」持续运行,不会进入到「挂起」状态。

所以在音视频通话的场景中,退到后台不会触发「挂起」,导致 IM 连接中断,IM 连接中断一般是 ping webscoket 2 次不成功造成的,跟本地网络有关系