群组同步问题

融云中群成员是有App自己提供并进行维护的,融云只是同步群组关系数据,并不保存群组的具体信息,融云会更趋开发者同步的群组数据计算群组成员信息并群发消息,所以当界面组件创建会话需要显示群组信息时,需要向app获取,app需要设置群组信息提供者 ---融云语

群组或用户信息同步:

融云认为健全的app都应该在本地获取,缓存并更新用户信息,融云并不维护相应的信息,由app提供用户信息可以避免更新不够及时,App中不同界面的用户信息不统一能够获取更好的用户体验;

  • 设置用户信息提供者:

    ①在app的启动页面中,我是在Application中进行设置的内容提供者;

    ② 调用RonIM.setUserInfoProvider(这个provider是相对来说实时在拉取缓存的用户信息),由于我的程序没有提供数据库缓存,所以在实时的拉取都是请求网络的,这里可以做一个判断:如果该缓存中没有该用户的信息,那么就网络刷新,如果有直接就拉取让融云拉取缓存数据就行,如果有数据库,那么就可以先判断缓存中有没有,如果没有就拉取数据库中的,数据库如果没有就拉取网络的,这样更加好,但是这个有一点不好就是,当用户修改姓名,但是app中有数据就没法进行实时的刷新。

              /**
              
              * 设置用户信息的提供者,供 RongIM 调用获取用户名称和头像信息。
              *
               * @param userInfoProvider 用户信息提供者。
               * @param isCacheUserInfo  设置是否由 IMKit 来缓存用户信息。<br>
               *                         如果 App 提供的 UserInfoProvider
               *                         每次都需要通过网络请求用户数据,而不         是将用户数据缓存到本地内存,会影响用户信息的加载速度;<br>
               *                         此时最好将本参数设置为 true,由 IMKit 将用户信息缓存到本地内存中。
               * @see UserInfoProvider
              */
              RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {
    
               @Override
               public UserInfo getUserInfo(String userId) {
    
                  return findUserById(userId);//根据 userId 去你的用户系统里查询对应的用户信息返回给融云 SDK。(这里可以用于请求网,但是return null)
               }
    
              }, true);
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容