跳到主要内容

版本:2.X

重连逻辑

功能描述

重新连接调用时机:

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

参数说明

参数类型必填说明最低版本
callbackObject重连回调对象2.3.3
callBack.onSuccessFunction即连接成功回调,会返回 token 对应的 userId2.3.3
callBack.onErrorFunction即连接失败回调,请您检查客户端初始化使用的 AppKey 和获取 token 用的 AppKey 是否一致2.3.3
callBack.onTokenIncorrectFunction即过 token 无效回调,是因为您在控制台设置了 token 过期时间,需要重新获取 token 并再次用新的 token 建立连接2.3.3
configObject重连配置2.3.3

config 参数说明

参数类型必填说明最低版本
autoBoolean是否自动重连, 默认 false2.3.3
urlString用于网络嗅探的地址, auto 为 true 时, 此参数必填2.3.3
rateArray网络嗅探频率, 单位为毫秒, auto 为 true 时, 此参数必填2.3.3
危险
  1. 不传 config 参数, 则为直接重连, 此时 reconnect 方法 必须在网络正常的情况下调用
  2. 传入 config 参数, SDK 内部自动做网络嗅探处理, 当检测到网络正常时, 进行重连, 按照传入嗅探频率嗅探 10 次后会在 onError 中返回重连失败,如还需要重连请在 onError 中继续调用重连方法。

代码示例

var callback = {
onSuccess: function(userId) {
console.log('reconnect success. ' + userId);
},
onTokenIncorrect: function() {
console.log('token 无效');
},
onError: function(errorCode) {
console.log(errorCode);
}
};
var config = {
auto: true,
url: 'cdn.ronghub.com/RongIMLib-2.2.6.min.js?d=' + Date.now(),
rate: [100, 1000, 3000, 6000, 10000]
};
RongIMClient.reconnect(callback, config);