跳到主要内容

版本: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.onTokenIncorrectFunctiontoken 无效回调,建议排查 控制台 是否设置了 Token 有效期,或重新获取 Token 再建立连接2.3.3
configObject重连配置2.3.32.6.0

代码示例

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