群组业务概述
群聊是即时通讯类应用中常见的多人通讯方式,一般包含两个及以上的用户。群组业务支持丰富的群组成员管理、禁言管理等特性,支持离线消息推送和历史消息记录漫游,可用于兴趣群、办公群、客服服务沟通等。
群组业务要点如下:
- 即时通讯服务只负责将消息传达给群组中的所有用户,不维护群组成员的资料(头像、名称、群成员名片等),需要由开发者应用服务器维护。
- 创建/解散/加入/退出群组等群组管理操作,必须由 App 服务器请求即时通讯服务端 API 实现。即时通讯客户端 SDK 不提供相应方法。详见下方群组管理功能。
- App Key 下可创建的群组数量没有限制,单个群组默认成员上限为 3000 人。可提交工单修改群成员人数上限。
- 单个用户可加入的群组数量无限制。
- 从控制台 IM 服务管理页面为 App Key 开启单群聊消息云端存储服务后,可使用即时通讯服务提供的消息存储服务,实现消息历史记录漫游。IM 旗舰版或IM 尊享版可开通该服务。具体功能与费用以官方价格说明页面及计费说明文档为准。
服务配置
在控制台创建应用后默认支持群组业务,不需要申请开通。
群组业务的部分基础功能与增值服务可以在控制台的免费基础功能和 IM 服务管理页面进行开通和配置。
群组管理功能
即时通讯服务不会托管用户,也不管理群组的业务逻辑,因此群的业务逻辑全部需要在 App 服务器进行实现。
提示
群主、群管理员、群公告、邀请入群、群号搜索等均为群组业务逻辑,需在 App 侧自行实现。
对于客户端开发人员来说,创建群组、解散等基础管理操作只需要与 App 自身的业务服务端交互即可,由 App 后端负责调用相应的即时通讯服务端 API(Server API)接口完成相关操作。
下表列出了即时通讯服务端提供的群组基础管理接口。注意,群组管理需要由 App 后端调用相应的即时通讯服务端 API(Server API)接口完成。客户端不提供群组管理的 API。
功能分类 | 功能描述 | 即时通讯服务端 API |
---|---|---|
创建、解散群组 | 提供创建者用户 ID、群组 ID、和群名称,向即时通讯服务端申请建群。如解散群组,则群成员关系不复存在。 | 创建群组、解散群组 |
加入、退出群组 | 加入群组后,默认可查看入群以后产生的新消息。退出群组后,不再接收该群的新消息。 | 加入群组、退出群组 |
修改即时通讯服务端的群组信息 | 修改在即时通讯的推送服务中使用的群组信息。 | 刷新群组信息 |
查询群组成员 | 查询指定 群组所有成员的用户 ID 信息。 | 查询群组成员 |
查询用户所在群组 | 根据用户 ID 查询该用户加入的所有群组,返回群组 ID 及群组名称。即时通讯服务不存储群组资料信息,群组资料及群成员信息需要开发者在应用服务器自行维护,如应用服务端维护的用户群组关系有缺失时,可通过此接口来核对校验。 | 查询用户所在群组 |
同步用户所在群组 | 向即时通讯服务端同步指定用户当前所加入的所有群组,防止应用中的用户群组信息与即时通讯服务端的用户所属群信息不一致。如果在集成即时通讯服务前 App Server 上已有群组及成员数据,第一次连接即时通讯服务时,可使用此接口向即时通讯服务端同步已有的用户与群组对应关系。 | 同步用户所在群组 |
群组单人禁言 | 在指定的单个群组中或全部群组中,禁言一个或多个用户。被禁言用户可以接收查看群组中其他用户消息,但不能通过客户端 SDK 发送消息。 | 单人禁言 |
群组全体禁言 | 将群组全体成员禁言。被禁言群组的所有成员均不能发送消息,需要某些用户可以发言时,可将此用户加入到群禁言用户白名单中。 | 全体禁言 |
群 组禁言用户白名单 | 群组被整体禁言后,禁言白名单中用户可以发送群消息。 | 全体成员禁言白名单 |
群聊消息功能
群聊消息功能与单聊业务类似,共用部分 API 及配置。
功能 | 描述 | 客户端 API | 即时通讯服务端 API |
---|---|---|---|
发送消息 | 可发送普通消息与媒体消息,例如文本、图片、GIF 等。支持在发送消息时添加 @ 信息。 | 支持 | 发送群聊消息 |
发送群聊定向消息 | 可发送普通消息与媒体消息给群组中的指定的一个或多个成员,其他成员不会收到该消息。 | 支持 | 发送群聊定向消息 |
接收消息 | 监听并实时接收消息,或在客户端上线时接收离线消息。 | 支持 | 不提供该 API |
群聊消息已读回执 | 发送群消息后如需要查看消息的阅读状态,需要先发送回执请求,在通过接受者的响应获取已读数据。 |