重连逻辑
功能描述
重新连接调用时机:
- 网络不好,导致连接频繁断开后不会重新连接。
- 长时间断网后,IM不会重新连接。
- 交互连接频繁断开(网络环境:WIFI 或者联通、移动 3/4G ),交替切换网络后,IM不会重新连接。
参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
callback | Object | 是 | 重连回调对象 | 2.3.3 |
callBack.onSuccess | String | 是 | 即连接成功回调,会返回 token 对应的 userId | 2.3.3 |
callBack.onError | String | 是 | 即连接失败回调,请您检查客户端初始化使用的 AppKey 和获取 token 用的 AppKey 是否一致 | 2.3.3 |
callBack.onTokenIncorrect | String | 是 | 即过 token 无效回调,是因为您在控制台设置了 token 过期时间,需要重新获取 token 并再次用新的 token 建立连接 | 2.3.3 |
config | Object | 否 | 重连配置 | 2.3.3 |
config
参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
auto | Boolean | 否 | 是否自动重连, 默认 false | 2.3.3 |
url | String | 否 | 用于网络嗅探的地址, auto 为 true 时, 此参数必填 | 2.3.3 |
rate | Array | 否 | 网络嗅探频率, 单位为毫秒, auto 为 true 时, 此参数必填 | 2.3.3 |
危险
- 不传 config 参数, 则为直接重连, 此时 reconnect 方法必须在网络正常的情况下调用.
- 传入 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);