在融云的用户信息机制中,是由用户信息提供者设置的用户信息,当然为了信息安全,用户信息的保护留在咱们本人的服务端进行操作的;
首先,参考融云文档 设置用户信息提供者。
RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {
/**
- 获取设置用户信息. 通过返回的 userId 来封装生产用户信息.
- @param userId 用户 ID
*/
@Override
public UserInfo getUserInfo(String userId) {
UserInfo userInfo = new UserInfo(userId, “userId 对应的名称 ”, Uri.parse(“userId 对应的头像地址 ”))
return userInfo;
}},true);
如此设置完用户信息提供者之后,在获取到用户信息之后,于此同时调用
RongIM.getInstance().refreshUserInfoCache(userInfo);
将用户信息缓存起来,那么问题来了,若是用户信息批改了,该如何解决呢?
以下我将我应用的形式提供给大家,供大家参考:
- 我设置了一个自定义音讯,UserInfoChangeMessage,自定义音讯可参考融云文档;
- 在某个用户更新个人信息之后,发送自定义音讯告诉与此用户相干的所有相关者。此音讯倡议有服务端发送;
- 在其余用户收到此音讯之后,通过音讯携带的 Userid,来从新从服务获取最新的用户信息,而后在调用 RongIM.getInstance().refreshUserInfoCache(userInfo); 将用户信息刷新缓存;
通过以上三步,即可实现用户信息的更新。