在融云的用户信息机制中,是由用户信息提供者设置的用户信息,当然为了信息安全,用户信息的维护留在我们自己的服务端进行操作的;

首先,参考融云文档 设置用户信息提供者。

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);

将用户信息缓存起来,那么问题来了,若是用户信息修改了,该如何处理呢?

以下我将我使用的方式提供给大家,供大家参考:

  1. 我设置了一个自定义消息 ,UserInfoChangeMessage,自定义消息可参考融云文档
  2. 在某个用户更新个人信息之后,发送自定义消息通知与此用户相关的所有相关者。此消息建议有服务端发送;
  3. 在其他用户收到此消息之后,通过消息携带的Userid ,来重新从服务获取最新的用户信息,然后在调用RongIM.getInstance().refreshUserInfoCache(userInfo); 将用户信息刷新缓存;

通过以上三步,即可完成用户信息的更新。


融云RongCloud
82 声望1.2k 粉丝

因为专注,所以专业