背景:

  • 微信小程序限制,当小程序退出后台5s,长时间没有消息交互还有其他未知情况都会自动断开长连接。
  • 我们小程序 IM 的初始化和登录状态都是在线的,如果长连接断开需要重新初始化和登录。
    问题:

大多数开发者提问都是因为长连接断开在线初始化和登录状态失效导致的。

使用建议:

下面几点 SDK 使用建议可以尽量保证长连接的正常交互:

  1. 在第一次登录或注册的时候,再去实例化对象 JMessage 进行初始化。
  2. JMessage 实例化后最好挂载在 app 对象,并保证全局只实例化一次。
  3. 当小程序在前台(app onshow)时,监听收到 disconnect 事件后重新进行初始化和登录
    null
  4. 当小程序在后台(app onhide)时,在下次小程序调到前台时判断连接状态,如果是断开状态重新进行初始化和登录。
    null

当遇到问题时请优先根据本建议调整自己的业务逻辑,再观测问题