微信小程序即时通讯断网状态下进入,有网后不会重连问题

微信小程序中使用即时通讯,按照文档一切都是可以正常使用的。
现在遇到一种场景:
手机没网络了,然后销毁小程序,重新进入小程序(此时是断网状态)。然后又有网了,这时候的即时通讯就不会自动重连了。只能把小程序销毁,再重新进入小程序(此时有网状态)才行。
请问这种场景怎么破??? joy

你好。我尝试着用你说的方法,有了新的报错:Error: retrying not allowed when not disconnected. the connection is now error

我发现,以我说的那种场景进入的小程序。所有的事件监听都是不起作用的。重连操作也不行。 joy

retry 对调用的时机要求比较严格。或许这里用 resume 更加合适。

如果小程序的官方 API 都不能及时触发事件的话,也就没有更好的监听手段了。可以暴力的在每次 App.onShow 时都调用一下 resume 。

不好意思我可能没有表达清楚。我说的是realtime的event事件,监听不到了。resume也用了,不起作用。

Realtime 感知到网络连接变化通常会慢于小程序的 API ,所以建议使用后者。

我用的就是小程序的监听网络变化的API,也用了resume,retry方法,都是不起作用的。我也同时监听了realtime所有的event的事件。我发现,以我所说的这种场景进入小程序,realtime的一切event都是没有的。

我在以我所说的这种场景状态(无网络进入小程序,初始化realtime,不关闭小程序,打开网络)下进行createIMClient,走的都是错误的回调,报错Error: request:fail。

我咨询了下大佬。retry 和 resume 在 client 创建失败后是不能使用的。这种情况请先确定网络连接已恢复,然后重新创建 client 。

但目前的 SDK (5.0.0-rc.6) 无法在创建 Client 失败后重新创建。这个问题修复后我会在这里回复。

断线重连的问题已经在 v5.0.0-rc.7 中修复

1 人赞了这个帖子.