在融云的用户信息机制中,是由用户信息提供者设置的用户信息,当然为了信息安全,用户信息的维护留在我们自己的服务端进行操作的;
首先,参考融云文档 设置用户信息提供者。
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); 将用户信息刷新缓存;
通过以上三步,即可完成用户信息的更新。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。