IM开发群组创建业务设计

上传人:Baige****0346 文档编号:266123095 上传时间:2022-03-14 格式:DOCX 页数:18 大小:2.72MB
返回 下载 相关 举报
IM开发群组创建业务设计_第1页
第1页 / 共18页
IM开发群组创建业务设计_第2页
第2页 / 共18页
IM开发群组创建业务设计_第3页
第3页 / 共18页
IM开发群组创建业务设计_第4页
第4页 / 共18页
IM开发群组创建业务设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《IM开发群组创建业务设计》由会员分享,可在线阅读,更多相关《IM开发群组创建业务设计(18页珍藏版)》请在金锄头文库上搜索。

1、 IM开发群组创建业务设计 最近更新: 2021-10-14:增加效果图和代码链接。 2020-11-02:初稿。需求分析群聊是很基础的功能需求,在进行群组聊天前,逃不过创建群组的这么一个过程。接下来,我们对微信进行一个简单的分析,然后设计一套类似于微信操作体验的业务。主动方:被动方:所以,根据上面的图,分析可得:1. 创建群组的时候,需要能指定成员列表2. 创建成功后,要自动创建会话,并产生一条群提示,广播给其他人,被邀请加入了群聊。模块交互设计1. app发送创建群组请求,附带群组名称(为空时,自动生成群名)和成员列表2. 转发3. 插入群组4. 添加成员5. 为每个人创建群聊会话6. 插

2、入一条群聊消息,消息类型为tips,内容为xx邀请你,yy和zz加入群聊,并添加到attach_notificatino_msg字段中,以便gate网关,直接广播系统通知消息给对应的群成员7. 返回8. 给客户端响应,客户端读取会话ID和加载tips内容“你邀请xx,yy和zz加入了群聊”9. 广播群聊消息10. 广播群聊消息协议设计创建群/ 创建讨论组群请求(类似微信):/ 1.无需对方同意/ 2.群成员可邀请任何人进群/ 3.创建人默认为群主,群主可转让,群主退出默认随机一个成员自动成为群主/ 4.只有群主可修改群公告,踢人message CIMGroupCreateReq / cmd i

3、d: 0x501 uint64 user_id = 1; string group_name = 2; / 群名,不指定则由服务端生成 repeated uint64 member_id_list = 3; / 群成员列表/ 群组创建响应message CIMGroupCreateRsp / cmd id: 0x502 uint64 user_id = 1; uint32 result_code = 2; CIMGroupInfo group_info = 3; / 群信息 repeated uint64 member_id_list = 4; / 群成员列表 bytes attach_not

4、ificatino_msg = 10; / 群创建系统通知,需要广播/ 群组类型enum CIMGroupType kCIM_GROUP_TYPE_UNKNOWN = 0; kCIM_GROUP_TYPE_GROUP_NORMAL = 1; / 普通群(200人) kCIM_GROUP_TYPE_GROUP_SUPER = 2; / 超级群(2000人)/ 加群模式enum CIMGroupJoinModel kCIM_GROUP_JOIN_MODEL_DEFAULT = 0; / 所有人可邀请别人加入 kCIM_GROUP_JOIN_MODEL_NEED_AUTH = 1; / 需要管理员验

5、证 kCIM_GROUP_JOIN_MODEL_REJECT = 2; / 拒绝所有人/ 被邀请人同意方式enum CIMGroupBeInviteMode kCIM_GROUP_BE_INVITE_MODEL_DEFAULT = 0; / 不需要同意 kCIM_GROUP_BE_INVITE_MODEL_NEED_AGREE = 1; / 需要同意/ 禁言方式enum CIMGroupMuteModel kCIM_GROUP_MUTE_MODEL_DEFAULT = 0; / 不禁言 kCIM_GROUP_MUTE_MODEL_ALL = 1; / 全体禁言/ 群组信息message CIM

6、GroupInfo uint64 group_id = 1; / 群组ID string group_name = 2; / 群组名称(最大128字符) CIMGroupType group_type = 3; / 群类型 CIMGroupJoinModel join_model = 4; / 入群模式 CIMGroupBeInviteMode be_invite_model = 5; / 被邀请人同意方式 CIMGroupMuteModel mute_model = 6; / 禁言模式 uint64 group_owner_id = 7; / 群主 uint32 create_time =

7、8; / 创建时间 uint32 update_time = 9; / 群信息更新时间 string group_intro = 10; / 群介绍,别人搜索入群的时候显示 string announcement = 11; / 群公告 string group_avatar = 12; / 群头像解散群/ 解散群请求message CIMGroupDisbandingReq / cmd id: 0x503 uint64 user_id = 1; uint64 group_id = 2;message CIMGroupDisbandingRsp / cmd id: 0x504 uint64 u

8、ser_id = 1; uint64 group_id = 2; uint32 result_code = 3; bytes attach_notificatino_msg = 10; / 群解散系统通知,需要广播退群/ 退出群message CIMGroupExitReq / cmd id: 0x505 uint64 user_id = 1; uint64 group_id = 2;/ 退出群message CIMGroupExitRsp / cmd id: 0x506 uint64 user_id = 1; uint64 group_id = 2; uint32 result_code =

9、 3; bytes attach_notificatino_msg = 10; / 群成员退出群系统通知,需要广播查询群列表/ 查询群列表请求message CIMGroupListReq / cmd id: 0x507 uint64 user_id = 1;/ 查询群列表响应message CIMGroupListRsp / cmd id: 0x508 uint64 user_id = 1; repeated CIMGroupVersionInfo group_version_list = 2;/ 群版本信息message CIMGroupVersionInfo uint64 group_i

10、d = 1; uint32 group_version = 2;注意,这里返回的是ID+群版本号,可以方便将来扩展。具体的群信息,还需要查询一次。群信息/ 查询群信息请求message CIMGroupInfoReq / cmd id: 0x509 uint64 user_id = 1; repeated CIMGroupVersionInfo group_version_list = 2;/ 查询群信息响应message CIMGroupInfoRsp / cmd id: 0x510 uint64 user_id = 1; uint32 result_code = 2; repeated C

11、IMGroupInfo group_info_list = 3;拉人/ 邀请人入群请求message CIMGroupInviteMemberReq / cmd id: 0x511 uint64 user_id = 1; uint64 group_id = 2; repeated uint64 member_id_list = 3; / 成员ID列表/ 邀请人入群响应message CIMGroupInviteMemberRsp / cmd id: 0x512 uint64 user_id = 1; uint64 group_id = 2; uint32 result_code = 3; by

12、tes attach_notificatino_msg = 10; / 入群系统通知,需要广播为了简化,这里没有验证机制,而是直接把对方加入到群内。踢人/ 踢人请求message CIMGroupKickOutMemberReq / cmd id: 0x513 uint64 user_id = 1; uint64 group_id = 2; repeated uint64 member_id_list = 3; / 成员ID列表/ 踢人响应message CIMGroupKickOutMemberRsp / cmd id: 0x514 uint64 user_id = 1; uint64 group_id = 2; uint32 result_code = 3; bytes attach_notificatino_msg = 10; / 踢人系统通知,需要广播效果创建群代码请移步: ServerCoffeeChat:opensource im with server(go) and client(flutter+swift) iOS:参考了TeamTalk、瓜子IM等知名项目,包含服务端(go)和客户端(swift),单聊、群聊和机器人(小微、图灵、思知)聊天功能已完成,欢迎对golang和跨平台开发flutter技术感兴趣的小伙伴Star加关注。 -全文完-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 架构

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号