IMLib 2.X 升级到 5.X
本文描述 IMLib SDK 从 2.X 到 5.X 版本的升级步骤。
5.x 相较于 2.x 版本,主要有以下变更:
- IMLib 拆分
- 连接接口变更
- 删除了部分废弃接口
IMLib 拆分说明
5.x 版本对 IMLib SDK 进行了拆分,拆分成如下六个模块:
模块名称 | 功能说明 |
---|---|
LibCore | 核心通讯模块 |
chatroom | 聊天室 |
customservice | 客服 |
disscussion | 讨论组 |
location | 实时位置 |
publicservice | 公众号 |
5.x 版本开始会提供两种形式的 SDK:完整包和拆分包
- 如果使用完整包的话,直接正常升级就行。
- 如果使用拆分包,首先 必需依赖 LibCore 库,然后按需集成即可。比如您除了核心模块,还使用到聊天室功能,那让项目同时依赖 LibCore 模块和 chatroom 模块,依次类推使用到哪个模块就需要依赖相关模块。
连接接口变更
连接接口 1
Java
connect(final String token, final RongIMClient.ConnectCallback connectCallback)
用户调用接口之后,如果因为网络原因暂时连接不上,SDK 会一直尝试重连,直到连接成功或者出现 SDK 无法处理的错误(如 token 无效,用户封禁等)。
Java
RongIMClient.connect(token, new RongIMClient.ConnectCallback() {
@Override
public void onDatabaseOpened(RongIMClient.DatabaseOpenStatus code) {
//消息数据库打开,可以进入到主页面
}
@Override
public void onSuccess(String s) {
//连接成功
}
@Override
public void onError(RongIMClient.ConnectionErrorCode errorCode) {
if(errorCode.equals(RongIMClient.ConnectionErrorCode.RC_CONN_TOKEN_INCORRECT)) {
//从 APP 服务获取新 token,并重连
}else {
//无法连接到 IM 服务器,请根据相应的错误码作出对应处理
}
}
})
连接接口 2
Java
connect(final String token, final int timeLimit, final ConnectCallback connectCallback)
用户调用接口之后,SDK 会在 timeLimit 秒内尝试连接,超过时间将会返回超时并停止连接,timeLimit 小于等于 0 行为和没有 timeLimit 的接口一样。
Java
RongIMClient.connect(token,5, new RongIMClient.ConnectCallback() {
@Override
public void onDatabaseOpened(RongIMClient.DatabaseOpenStatus code) {
//消息数据库打开,可以进入到主页面
}
@Override
public void onSuccess(String s) {
//连接成功
}
@Override
public void onError(RongIMClient.ConnectionErrorCode errorCode) {
if(errorCode.equals(RongIMClient.ConnectionErrorCode.RC_CONN_TOKEN_INCORRECT)) {
//从 APP 服务获取新 token,并重连
} else if (errorCode.equals(RongIMClient.ConnectionErrorCode.RC_CONNECT_TIMEOUT)) {
//连接超时,弹出提示,可以引导用户等待网络正常的时候再次点击进行连接
} else {
//无法连接 IM 服务器,请根据相应的错误码作出对应处理
}
}
})
错误回调变更
onError 回调参数以及回调机制变化如下:
版本 | 参数类型 | 回调时机 | 是否继续重连 |
---|---|---|---|
2.x 版本 | RongIMClient.ErrorCode | 连接过程中发生的任何异常都会回调 | 业务错误时不再重连,其它情况 SDK 会继续重连。 |
4.x & 5.x 版本 | RongIMClient.ConnectionErrorCode | 连接过程出现业务错误时回调 | 否 |