====== 群成员信息保存方案 ====== ---- ===== 方法一:群成员信息保存在环信服务器 ===== * 环信服务器维护:groupid、owner、memeber、maxUser。 * APP服务器保存除以上属性外的其他数据 由手机端创建群:通过SDK提供的方法创建某群,创建成功后把所有数据(群ID、群头像、群名称、标签等信息)放到APP服务器留存,当用户通过条件(附近的群、条件筛选等)得到群列表,查看群信息时,通过 groupid 到自己服务器获取群的用户数据(群名称、类别、头像等信息),从环信服务器获取群的群成员信息。 {{ :im:other:integrationcases:image012.png?nolink |创建群聊}} {{ :im:other:integrationcases:image013.png?nolink |查看群详情}} {{ :im:other:integrationcases:image014.png?nolink |申请入群}} ===== 方法二:群成员信息与所有群信息一起保存在 APP 服务器 ===== 由服务器创建群,手机端调用 APP 服务器的接口,APP 服务器调用环信的 REST 接口创建群,这样创建群的 ID,群名称等都在 APP 服务器留有备份,当用户通过搜索条件(附近的群、筛选某类别的群等)即可从 APP 服务器拿到所有的信息展示给用户,当用户点击加入此群时,通过调用 APP 服务器接口,APP 服务器发送一条透传消息到群管理员(可以不局限于创建者,也就是说 APP 服务器可以控制群成员的级别实现多管理员),管理员收到申请后,同意此人加入则调用 APP 服务器接口,APP 服务器调用环信的 REST 接口把此人拉入此群。 {{ :im:other:integrationcases:image015.png?nolink |创建群聊}} {{ :im:other:integrationcases:image016.png?nolink |查看群详情}} {{ :im:other:integrationcases:image017.png?nolink |申请入群}} ===== 方案对比 ===== 在群聊相关数据交互中,方法二和方法一相比的优缺点: * 优点: 群所有的数据均在 APP 服务器中,对于手机端,创建群、查看群详情等操作只需访问 APP 服务器即可,不必访问两个服务器,所有请求都需要在 APP 服务器,更好管理和控制。 * 缺点: 加群退群的申请通知只能通过透传实现,不如“方法一”中直接调用很全的环信 SDK 接口方便。如若也用环信 SDK 的接口加减人,则会造成 APP 服务器维护的群成员和环信服务器中的群成员不一致。 ---- 上一页:[[im:other:integrationcases:nickname|昵称和头像的显示与更新]] 下一页:[[im:other:integrationcases:appchat|跨 APP 聊天]]