升级融云 4.0 及以上版本的兼容方案

​ 从 2.10.6 版本升级到 4.0 版本时候,遇到了一些坑,也从中总结了些经验,希望对看到这篇文章的人有帮助。

​ 升级 SDK 和,会报错的方法基本只有一个,就是 connectWithToken 这个连接方法,因为 4.0 及以上版本中此方法的回调形式改变了,所以需要“删除连接接口 token 非法的回调,并将该回调中的处理逻辑,移动至 error 回调中”

示例代码:

​ 以下代码以 IMKit 为例,IMLib 修改对应的核心类即可。

  • iOS 端

     [[RCIM sharedRCIM] connectWithToken:token             dbOpened:^(RCDBErrorCode code) {                 //如果消息数据库打开,可以进入到主页面             }             success:^(NSString *userId) {                 //连接成功             }             error:^(RCConnectErrorCode status) {                 if (status == RC_CONN_TOKEN_INCORRECT) {                     //将旧版本 token 非法的回调处理代码写到这里                     //从 APP 服务获取新 token,并重连                 } else {                     //无法连接 im 服务器,请根据相应的错误码作出对应处理                 }             }];
  • Android 端

    RongIM.connect(token, new RongIMClient.ConnectCallback() {      @Override      public void onDatabaseOpened(RongIMClient.DatabaseOpenStatus code) {          //如果消息数据库打开,可以进入到主页面      }      @Override      public void onSuccess(String s) {          //连接成功      }      @Override      public void onError(RongIMClient.ErrorCode e) {          if(e.equals(RongIMClient.ErrorCode.RC_CONN_USER_OR_PASSWD_ERROR)) {              //将旧版本 token 非法的回调处理代码写到这里              //从 APP 服务获取新 token,并重连                            }else {              //无法连接 im 服务器,请根据相应的错误码作出对应处理          }      }});

注意

​ 4.0 及以上版本的 SDK 中,会出现一些错误码不走 error 回调的情况,建议分情况进行处理:

* 用户第一次登录,设置 timeLimit 为有效值,网络极差情况下超时回调 error。* 用户后续登录,调用没有 timeLimit 的接口,SDK 就会保持旧版本的自动重连。
©著作权归作者所有:来自51CTO博客作者wx5fd70a028fc89的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 融云升级到到5.0报错 使用 pod ,从4.x版本升级到 5.x,写法和报错如
  2. Apache Spark 3.0 第一个稳定版发布,终于可以在生产环境中使用啦!
  3. nginx 负载均衡
  4. Python适合开发桌面软件吗?很多人都不懂!
  5. 用PowerShell通过Posh-SSH免密码自动登录Linux并执行命令
  6. HBase版本|Apache HBase 2.2.5版本可用
  7. 将powerjob-server 3.4升级为4.0版本
  8. 论tcp的n次握手和m次挥手
  9. Opal Kelly公司推出面向FPGA模块的SYZYGY规范接口

随机推荐

  1. mysql正则匹配模糊查询某个字段
  2. TP6验证码验证失败的原因以及解决办法
  3. PHP对一组数进行重新排列(冒泡算法)
  4. 怎么循环查看php-fpm的内存占用情况
  5. 精选PHP中常用的20个类库
  6. 分析PHP错误处理(核心特性)
  7. PHP操作Redis数据库常用方法(总结)
  8. PHP使用redis作为缓存(高效技术)
  9. php性能优化的方法介绍
  10. php实现顺序线性表