请问,微信小程序下如何正确重连

jmessage
标签: #<Tag:0x00007f213c034ee0>

(Lucas) #1

小程序在切后台几分钟后 100% 会断开,如下我在发消息之前判断状态,但是这种重新初始化、登录方式并不能成功。因为文档中并没有任何手动重连的api,所以尝试重新 Init 。

会无限尝试重连,而且一直不能成功。

另外 onDisconnect 事件并不能在手动断开网络模拟下成功触发,在真机中的 onshow 事件中触发,同样我尝试重新 init ,依然没有成功。

项目比较着急,请问如何正确重连,目前我们不是每页都初始化,是放在全局去监听。


#2

1、断连后重新连接就是重新初始化和登陆

2、不是每页都初始化的意思是 你们有多个页面再操作,但并不是在每个页面都做了初始化登陆吗?

web 的是建议单页面实现,因为跳转了页面连接就是会断开的得重新初始化


(Lucas) #3

1、不是 web 是小程序;
2、是全局初始化,全局监听,也就是在小程序的 app.js 中,因为要监听未读消息并在聊天列表中标注,所以只能在全局初始化。
3、再切会前台时主动重新初始化每次需要 2.95s 左右 ,这个有办法优化吗


#4

据研发说明,这个 2.95 秒的时间不是 init 事件的时间,可能是pendding状态

我们猜测是其他的时间点,估计只有小程序才可能会触发这个,需要测试验证一下,这个需要一点时间,目前研发那边没有排期处理


(Lucas) #5

对,是 pending 状态,目前的 sdk 没有返回任何数据之前都判定的是 Init 没有完成,这个每次都需要去重新初始化坑太深了,小程序选择图片这种操作都需要重新去初始化一遍。每次需要 2.95 秒,但是第一次连接的时候秒连,虽然状态一直是 pending 但是 sdk 触发了 success 事件。后面重新初始化就会时间变长,貌似和首次初始化方式不一样。

方便让您那边工程师联系下我吗,项目着急上线,卡在这儿着实很捉急。
QQ: 845640747


(Lucas) #6

@Lris 有看到我的回帖吗


#7

这个提给研发那边了,他最近会抽空测试一下,很抱歉,由于工作安排原因不能马上处理


(nop) #8

断线后需要重连这个逻辑没有问题。
一楼日志中的打印已经写明了因为当前网络断开,所以无法重连成功。
这时候你应该是监听wx.onNetworkStatusChange这个回调,当网络恢复后再尝试jmessage的重新初始化