跳到主要内容

版本:2.X

重连逻辑

功能描述​

在 v2.6.0 及以上版本中,SDK 内已实现重连机制,在应用的整个生命周期内,开发者只需要调用一次 RongIMClient.connect() 建立连接。当网络异常中断时,SDK 内部会尝试重新建立连接,业务层无需进行其他操作。当业务层使用 RongIMClient.disconnect() 主动断开连接后,希望以断开前的身份重新进行连接时,可使用 RongIMClient.reconnect() 进行重新连接。

在 v2.5.x 版本中 SDK 内无重连机制,重新连接调用时机:

  1. 网络不好,导致连接频繁断开后不会重新连接。
  2. 长时间断网后,IM不会重新连接。
  3. 交互连接频繁断开(网络环境:WIFI 或者联通、移动 3/4G ),交替切换网络后,IM不会重新连接。

在 v2.9.4 及以上版本中调用 RongIMClient.reconnect() 前需先调用 RongIMClient.disconnect() 方法,否则会报错误 35007。

参数说明​

参数类型必填说明最低版本废弃版本
callbackObject是重连回调对象2.3.3
callBack.onSuccessFunction是连接成功回调,会返回 token 对应的 userId2.3.3
callBack.onErrorFunction是连接失败回调,请您检查客户端初始化使用的 AppKey 和获取 token 用的 AppKey 是否一致2.3.3
callBack.onTokenIncorrectFunction是token 无效回调,建议排查 控制台 是否设置了 Token 有效期,或重新获取 Token 再建立连接2.3.3
configObject否重连配置2.3.32.6.0

代码示例​

JavaScript
var callback = {
onSuccess: function(userId) {
console.log('reconnect success. ' + userId);
},
onTokenIncorrect: function() {
console.log('token 无效');
},
onError: function(errorCode) {
console.log(errorCode);
}
};
RongIMClient.reconnect(callback);