用户、群组信息及聊天室详细信息管理维护和集成方式
回答:
先列出几个必读的文档:
1:架构介绍 http://www.rongcloud.cn/docs/quick_start.html#framework
2:IM Server提供的相关 API(主要是用户和群组、聊聊天室部分) http://www.rongcloud.cn/docs/server.html#message_sync
3:Web 集成引导 https://rongcloud.github.io/websdk-demo/integrate/guide.html
在使用融云服务时和用户、群组、聊天室相关的逻辑:
1:融云需要发送消息相关的 用户、群组、聊天室信息,具体如下:
应用服务器维护用户所有信息,请求融云注册用户(提供 id、name、portrait),id 用于消息收发,name 用于 push,此接口同时提供了刷新方法
应用服务器维护群组及成员信息,也就是说,群的创建、群成员的维护都需要在应用服务器完成后同步到融云,但只同步群组(群 id)及群成员信息(成员 id),两种 id 同样用于消息的收发,消息发送给 群组id,群成员可以获取对应消息
2:用户 创建和加入聊天室 是在端上调用 sdk 相应方法完成,具体参考 https://rongcloud.github.io/websdk-demo/api-test.html
3:融云通过链接服务器、消息收发等携带相关 id 到各端,端上通过 id 请求应用服务器获取详细信息(用户名、头像、群组名称、群头像、群成员信息以及其他业务需要的职位、等级等数据)
用户使用 token 链接融云,成功后返回当前用户的 id,可以获取登录用户的详细信息
接收到消息时,消息体里有 conversationType、targetId 和 senderUserId,单聊(conversationType = 1)可以通过 userId = senderUserId 获取发送者详细信息,群聊(conversationType = 3)可以通过 groupId = targetId 获取群组信息,可以直接返回群组及成员信息,也可以分开请求获取,具体取决于接口设计。
4:收到聊天室消息 (conversationType = 4),可以通过 senderUserId 得知发送者 id,通过 targetId 得知聊天室 id,然后可以获取聊天室成员列表,进而处理相应的用户信息逻辑
开发实现参考:
Web 用户信息实现参考:https://github.com/rongcloud/websdk-demo/blob/master/user-group.js
Android 用户信息文档:http://www.rongcloud.cn/docs/android.html#user_info
iOS 用户信息文档:http://www.rongcloud.cn/docs/ios_imlib.html#user_info