• UIKit
  • SDK
  • 服务端 API
Chat/
全平台/
产品介绍/
消息管理/
UIKit
  • 概述
    • 产品概述
    • 功能概览
    • 定价
      • 账单概览
      • Chat 包月套餐
      • Chat 增值计费说明
  • 快速集成
    • 跑通Demo
    • 集成
      • React
      • Vue
    • UserSig 鉴权
  • 功能
    • 集成通话能力
    • 添加表情回应
    • 已读回执
    • 对方正在输入
    • 用户在线状态
    • 消息搜索
    • 引用回复
    • 文本消息翻译
  • UI 组件
    • 会话列表
      • 会话列表
      • 会话列表上下文
      • 会话预览
      • 会话搜索
      • 会话操作
  • 主题
    • React
    • Vue
      • Web
      • Mobile
  • 自定义
    • 自定义消息
    • 自定义表情和贴纸
  • 本地化
    • React
    • Vue
  • 控制台指南
    • 新版控制台说明
    • 创建和升级应用
    • 基本配置
    • 功能配置
    • 账号管理
    • 群组管理
    • 回调配置
    • 用量统计
    • 实时监控
    • 开发辅助工具
  • 产品介绍
    • 消息管理
      • 单聊消息
      • 消息存储
      • 离线推送
      • 群消息
      • 消息格式
    • 账号系统
      • 登陆验证
      • 在线状态管理
    • 群相关
      • 群组系统
      • 群组管理
    • 用户资料和关系链
      • 资料管理
      • 关系链管理
  • 场景化实践
    • 实现直播间搭建
    • 实现游戏内聊天
    • AI 聊天机器人
    • 超大娱乐社群
    • 类Discord社群指南
  • 推送服务(Push)
    • 服务概述
    • 开通服务
    • 快速跑通
    • 厂商通道
      • 厂商配置
        • Android
        • iOS
        • Flutter
        • React-Native
      • 快速接入
        • Android
        • iOS
        • Flutter
        • React-Native
    • 数据统计
    • 排查工具
    • 客户端 API
      • Android
      • iOS
      • Flutter
      • React Native
    • 服务端 API
      • 发起全员/标签推送
      • 单发推送
      • 获取应用属性名称
      • 设置应用属性名称
      • 获取用户属性
      • 设置用户属性
      • 删除用户属性
      • 获取用户标签
      • 添加用户标签
      • 删除用户标签
      • 清空用户标签
      • 推送撤回
    • 推送回调
      • 全员/标签/单发回调
      • 其他推送回调
    • 高级功能
      • 自定义角标
      • 自定义铃音
      • 自定义小图标
      • 自定义点击跳转
      • 推送消息分类
    • 更新日志
      • Android
      • iOS
      • Flutter
      • React Native
    • 常见问题
  • 错误码

群消息

应用场景

群内收发消息

群成员在群内收发消息。

App 管理员发送消息

群聊消息可以由 App 管理员在后台发送消息,也可以模拟其他用户身份发送消息(即使 App 管理员或发送者不是群成员,消息依然会下发)。

App 管理员模拟系统消息

通过 App 管理员在后台发送消息,可以模拟系统消息,以系统消息的形式给指定的群内在线成员,App 端收到 App 管理员的自定义消息可做特殊处理。

群消息的 SEQ 机制

即时通信 Chat 会为每个群维护一个消息 SEQ。SEQ 的初始值为 1。群内每产生一条普通消息,即时通信 Chat 后台会将当前 SEQ 的值作为该消息的 SEQ,并且将该 SEQ 自增 1。
群组 ID + SEQ,相当于是一条消息的唯一标识。
注意
即时通信 Chat 只会为存漫游的消息产生递增 SEQ。

群聊消息类型

消息类型
描述
文本消息
消息内容是普通文本
图片消息
消息内容为图片 URL 地址、尺寸、图片大小等信息
表情消息
表情消息是由开发者自定义
语音消息
语音数据需要提供时长信息,以秒为单位
地理位置消息
消息内容为地理位置标题、经度、纬度信息
文件消息
消息内容为文件的 URL 地址、大小、格式等信息,格式不限,最大支持100M
短视频消息
消息内容为短视频文件的 URL 地址、时长、大小、格式等信息,最大支持100M
自定义消息
开发者自定义的消息类型,例如红包消息、石头剪刀布等形式的消息
系统通知消息
包含内置的系统通知消息和开发者自定义系统通知消息

群聊消息能力

类型
功能描述
应用场景
发送群普通消息
群成员可以通过 Chat SDK 接口发送消息。App 管理员无需加入群组,即可调用 REST API 在任意群组中发送消息。
群成员在群内发送消息,App 管理员向任意群组发送消息
发送群系统消息
App 管理员无需加入群组,即可调用 REST API 在群组中发送系统通知。该系统通知,只有群内在线成员才会收到该消息,不具备漫游能力。
App 管理员群内部分或者全部在线成员推送一条时效性较高的提醒
群消息离线推送
支持 Apple、华为、小米、OPPO、vivo、魅族等品牌手机离线推送
群聊消息离线推送
接收群在线消息
群成员可以通过 Chat SDK 接收群聊在线消息
在线群成员实时接收群消息
群成员获取离线/历史消息
群成员通过 Chat SDK 接口查询历史消息
群成员上线接收离线消息,群成员查看群聊天记录
App 后台获取群消息
App 管理员可通过 REST API 下载 App 在某一段时间内产生所有的消息;App 管理员亦可通过 REST API,获取任意群的聊天记录;App 后台可以通过群内发言之后回调,实时获取群消息。
App 定期备份消息记录的场景;App 需要快速获取指定群组历史消息的场景;App 需要实时获取群消息的场景
消息删除
可通过 REST API 将历史消息删除,确保该消息不被传播
群内恶意信息删除
群聊消息中携带发送者资料
在群消息中携带发送者的昵称、头像、群名片、用户维度的自定义字段、群成员维度的自定义字段
展示消息发送人昵称、头像等信息
群消息发送控制
禁言和群消息发送前回调,是控制群消息发送的两种方式。
禁止群内某个成员发送消息,禁止群内所有成员发消息,App 后台过滤或修改消息
群消息接收控制
用户针对单个群组设置不同的消息接收选项:接收并提示,接收不提示,屏蔽消息。设置“接收不提示”后,iOS 终端会去掉 APNs 推送功能
用户屏蔽某个群组的消息
群消息频率控制
控制群普通消息的发送频率,默认值为 40条/秒。频控对象不包括 App 管理员用 REST API 发送的群系统消息。详细请参考下文消息优先级与频率控制。
避免消息刷屏
注意
如需携带发送者昵称和头像,则必须把这两个字段的信息导入到即时通信 Chat 的用户资料中。
如果需要携带自定义资料,则需要先在控制台配置自定义字段,然后再提工单申请在消息携带相应的字段。

群消息发送控制

可以通过以下方式控制群消息的发送:
控制方式
详细描述
群组内禁言
禁止某一用户一段时间内在群内发言,只针对单个群组有效。如果用户退群再重新入群,只要禁言时间没有过期,禁言依旧有效
群消息发送前回调
在把群消息下发给群成员之前,即时通信 Chat 后台先去 App 后台询问是否允许下发消息,如果不允许,则拒绝下发消息;
App 后台在收到回调后,也可对消息内容进行修改并返回给即时通信 Chat,即时通信 Chat 将使用修改之后的信息进行下发,详情请参考 群内发言之前回调
但是即时通信 Chat 在发起该回调后,最多只会等待2秒。如2秒内未收到应答,直接将消息下发给群成员,不会进行重试

消息优先级与频率控制

群消息优先级

群消息分为 3 个优先级,如果某个群的消息超过了频率限制,后台会优先下发高优先级的消息。因此用户应根据消息的重要程度,来选择合适的优先级。 3个优先级从高到低,分别如下:
优先级
建议选择该优先级的消息类型
High
红包消息和礼物消息
Normal
普通文本消息
Low
点赞消息

群消息频控

总消息数频控

说明
总消息数频控是指单个群所有端接口累计每秒最多能发送的消息数限制,默认值为 40条/秒,采用每秒平均限频。消息数量超过限制后,后台优先下发优先级相对较高的消息,同等优先级的消息随机排序。
被频控限制的消息,不会下发,不会存入历史消息,但会给发送人返回成功;会触发 群内发言之前回调,但不会触发 群内发言之后回调

优先级频控

优先级频控是指单个群每秒最多能发送多少条某优先级的消息,发消息请求只有在通过总消息数频控之后,才会进入优先级频控。
所有的消息都会受到40条/秒的频率限制,可以设置三级优先级,设置了 High 优先级的消息将有最高优先级,避免被限制,如果同一秒内高优先级消息总数超过40条/秒,高优先级消息也会被抛弃。

群组离线消息处理流程





群组离线消息处理流程:

1. 用户 A 调用sendMessage给群组 C 发送消息,用户 B 处于下线状态; 1.1 把群组 C 添加进用户 B 的最近联系人,缓存大小为 100 条; 1.2 用户更新群组的消息信息,包括群组最新消息 seq; 1.3 把消息存入漫游服务器中,时间限制 7 天。
2. 用户B调用login接口登录即时通信 Chat;
3. SDK 自动拉取所有群组的消息 seq 信息,包括最新消息 seq 和未读计数;
4. SDK 自动拉取最近联系人,通过OnNewMessage接口抛出;
5. 同步消息过程完成,通过OnRefresh接口通知用户已完成群组数据同步;
6. 用户调用getMessage,SDK 自动拉取漫游服务器。

在技术社区提问