消息类型总览
融云即时通讯用 objectName 标识消息类型,并在「消息类型概述」中把内置类型分为用户内容类、通知类、状态类与信令类。本页按融云口径给出 26 种内置消息类型、38 个 objectName 的分类总表,并逐项标注本项目的 content.type 对应关系与实现状态。
本项目使用封闭的 ContentType 联合体(text / image / file / voice / location / custom / recall / system),不引入 objectName 与自定义内容体注册。因此融云消息类型只能“能力映射”,不能按 objectName 二进制兼容;未映射的类型一律标注为未实现。
三个属性维度
| 维度 | 融云语义 | 本项目的实现口径 |
|---|---|---|
| 计数与存储(ISCOUNTED / ISPERSISTED / STATUS / NONE) | 是否让会话未读数 +1、是否写入客户端本地库;只影响会话未读,不等于 App 角标。 | 服务端对每条新消息统一累加接收方会话未读;recall 是替换原消息,不新增未读;客户端本地库由各端 SDK 维护。 |
| 离线消息缓存 | 单聊/群聊/系统会话默认缓存 7 天;聊天室与超级群不支持;Web/小程序不支持客户端消息存储。 | 服务端保留历史;离线队列每会话最多 500 条;聊天室消息不落库、不补发;超级群按普通群持久化(见 限频与限制)。 |
| 远程推送通知 | 用户内容类默认推送;通知类默认不推送;状态类不支持;超级群有频率限制。 | 有设备 token 台账(客户端 REST 注册);没有 APNs/FCM/厂商发送实现,投递记录只会是 no_token/not_configured。详见 推送通道与投递。 |
分类总表
下表按融云 4 个分类列出 26 种类型。“计入未读/离线存储/默认推送”取自融云默认策略;最后一列是本项目的映射与状态,未实现类型不提供同名 objectName 兼容。
用户内容类(12 类)
用户之间实际发送的内容:文本、图片、GIF、图文、文件、语音、小视频、位置、引用、合并转发、流式与名片。
| 消息类型 | objectName | 内容字段要点 | 计入未读 | 离线存储 | 默认推送 | 本项目 content.type / 状态 |
|---|---|---|---|---|---|---|
| 文本消息 | RC:TxtMsg | content、mentionedInfo、mentionedInfo.mentionedContent | 是 | 支持 | 默认推送 | ✅ 已实现(text) |
| 图片消息 | RC:ImgMsg | imageUri、content、name | 是 | 支持 | 默认推送 | ✅ 已实现(image) |
| GIF 图片消息 | RC:GIFMsg | remoteUrl、gifDataSize、width / height | 是 | 支持 | 默认推送 | ⛔ 未实现 |
| 图文消息 | RC:ImgTextMsg | title、content、imageUri | 是 | 支持 | 默认推送 | ⛔ 未实现 |
| 文件消息 | RC:FileMsg | fileUrl、name、size | 是 | 支持 | 默认推送 | ✅ 已实现(file) |
| 高清语音消息 | RC:HQVCMsg / RC:VcMsg | remoteUrl、duration、name | 是 | 支持 | 默认推送 | ✅ 已实现(voice) |
| 小视频消息 | RC:SightMsg | sightUrl、content、duration | 是 | 支持 | 默认推送 | ⛔ 未实现 |
| 位置消息 | RC:LBSMsg | latitude、longitude、poi | 是 | 支持 | 默认推送 | ✅ 已实现(location) |
| 引用消息 | RC:ReferenceMsg | content、referMsgUserId、referMsg | 是 | 支持 | 默认推送 | ⛔ 未实现 |
| 合并转发消息 | RC:CombineMsg / RC:CombineV2Msg | remoteUrl、conversationType、nameList | 是 | 支持 | 默认推送 | ⛔ 未实现 |
| 流式消息 | RC:StreamMsg | content、seq、complete | 是 | 支持 | 默认推送 | ⛔ 未实现 |
| 名片消息 | RC:CardMsg | user.id、user.name、user.portrait | — | — | — | ⛔ 未实现 |
通知类(4 类)
需要展示在会话中的提示,如“已撤回”“张三加入了群组”。
| 消息类型 | objectName | 内容字段要点 | 计入未读 | 离线存储 | 默认推送 | 本项目 content.type / 状态 |
|---|---|---|---|---|---|---|
| 撤回通知消息 | RC:RcNtf | operatorId、recallTime、originalObjectName | 否 | 支持 | 默认不推送 | ✅ 已实现(recall,能力等价) |
| 提示条通知消息 | RC:InfoNtf | message、extra | 否 | 支持 | 默认不推送 | ⛔ 未实现 |
| 群组通知消息 | RC:GrpNtf | operatorUserId、operation、data | 否 | 支持 | 默认不推送 | ⛔ 未实现 |
| 命令提醒消息 | RC:CmdNtf | name、data | 否 | 支持 | 默认不推送 | ⛔ 未实现 |
状态类(1 类)
只在在线期间有效的瞬时状态,例如“正在输入”。
| 消息类型 | objectName | 内容字段要点 | 计入未读 | 离线存储 | 默认推送 | 本项目 content.type / 状态 |
|---|---|---|---|---|---|---|
| 正在输入状态消息 | RC:TypSts | typingContentType | 否 | 不支持 | 不支持 | ⛔ 未实现 |
信令类(9 类)
IM 服务自身业务使用的信令,如撤回命令、已读回执、聊天室 KV 通知、音视频通话信令。
| 消息类型 | objectName | 内容字段要点 | 计入未读 | 离线存储 | 默认推送 | 本项目 content.type / 状态 |
|---|---|---|---|---|---|---|
| 命令消息 | RC:CmdMsg | name、data | 否 | 支持 | 默认不推送 | ⛔ 未实现 |
| 撤回命令消息 | RC:RcCmd | MessageUId、TargetId、ChannelId | 否 | 支持 | 默认推送 | ✅ 已实现(recall,能力等价) |
| 单聊已读回执消息 | RC:ReadNtf | lastMessageSendTime、messageUId、type | 否 | 支持 | 默认不推送 | ⛔ 未实现 |
| 群聊已读回执请求消息 | RC:RRReqMsg | messageUId | 否 | 支持 | 默认不推送 | ⛔ 未实现 |
| 群聊已读回执响应消息 | RC:RRRspMsg | receiptMessageDic | 否 | 支持 | 默认不推送 | ⛔ 未实现 |
| 多端已读状态同步消息 | RC:SRSMsg | lastMessageSendTime | 否 | 支持 | 默认不推送 | ⛔ 未实现 |
| 聊天室属性通知消息 | RC:chrmKVNotiMsg | type、key、value | 否 | 支持 | 默认不推送 | ⛔ 未实现 |
| 消息扩展功能消息 | RC:MsgExMsg | clear、del、put | 否 | 支持 | 默认不推送 | ⛔ 未实现 |
| 实时音视频信令 | RC:VCAccept / RC:VCHangup / RC:VCInvite / RC:VCModifyMedia / RC:VCModifyMem / RC:VCRinging | 各类信令内容 | 否 | 支持 | 默认推送 | ⛔ 未实现 |
另有自定义消息:objectName 由应用自定义(不得以 RC: 开头、长度不超过 32),内容体由应用约定。本项目用 content.type=custom + data 表达,详见 逐类型参考。
本项目已实现的消息内容类型
| content.type | 含义 | 关键字段 | 限制 | 对应融云类型 |
|---|---|---|---|---|
text | 文本 | text(非空)、mentionedInfo(群聊)、quote(引用快照) | 5000 字符;消息体 ≤5120 字节 | RC:TxtMsg |
image | 图片 | url(必填)、width、height、size | url 必填;消息体 ≤5120 字节 | RC:ImgMsg |
file | 文件 | url、name、size、mime | 上传接口 20 MB;消息体 ≤5120 字节 | RC:FileMsg |
voice | 语音 | url(必填)、duration(1..300 秒) | duration 必填且范围 1..300 | RC:HQVCMsg / RC:VcMsg |
location | 位置 | latitude、longitude、address | 纬度 [-90,90];经度 [-180,180];address ≤200 字 | RC:LBSMsg |
custom | 自定义 | data(任意 JSON) | 序列化后 ≤5120 字节;服务端不解析 | 自定义 objectName(非 RC: 前缀) |
recall | 撤回占位 | recallMessageId、operatorId | 仅撤回流程产生;撤回窗口 120000 毫秒 | RC:RcNtf / RC:RcCmd(能力映射) |
system | 系统通知 | systemType、text、data、extra | 仅系统会话(conversationType=4)允许;需合法 systemType | 通知类 / 信令类的部分场景 |
融云的 GIF、图文、小视频、名片、引用、合并转发、流式、命令/通知类 objectName、音视频信令均未实现为独立消息类型。
其中引用已有部分能力(文本消息可携带 content.quote),输入状态、已读回执、消息扩展、聊天室 KV 已有等价能力,但它们不是消息类型,不能按融云的 objectName 收发。
消息类型扩展与消息编辑/删除/引用尚未提供;在具备可验证实现前,请勿宣称已支持。
38 个 objectName 清单
融云服务端消息类型库共 38 个 objectName(来自公开消息类型清单)。其中 27 个出现在上方分类表(另有 5 个音视频信令 objectName 不在该清单内,也已在分类表列出);另外 11 个是 SDK 内部/历史/赠送能力,不单列文档章节,列出以便排障时识别。
| objectName | 名称 | 分类 | 说明 |
|---|---|---|---|
RC:TxtMsg | 文本消息 | 用户内容类 | 已收录为文本类型 |
RC:ImgMsg | 图片消息 | 用户内容类 | 已收录为图片类型 |
RC:GIFMsg | GIF 图片消息 | 用户内容类 | 已收录为 GIF 类型 |
RC:ImgTextMsg | 图文消息 | 用户内容类 | 已收录为图文类型 |
RC:FileMsg | 文件消息 | 用户内容类 | 已收录为文件类型 |
RC:HQVCMsg | 高清语音消息 | 用户内容类 | 已收录为语音类型 |
RC:VcMsg | 旧版语音消息 | 用户内容类 | 已被 RC:HQVCMsg 取代,仍计入 38 个 objectName |
RC:SightMsg | 小视频消息 | 用户内容类 | 已收录为小视频类型 |
RC:LBSMsg | 位置消息 | 用户内容类 | 已收录为位置类型 |
RC:ReferenceMsg | 引用消息 | 用户内容类 | 已收录为引用类型 |
RC:CombineMsg | 合并转发消息 | 用户内容类 | 已收录为合并转发类型 |
RC:CombineV2Msg | 合并转发消息 V2 | 用户内容类 | 合并转发的 V2 版本 |
RC:StreamMsg | 流式消息 | 用户内容类 | 已收录为流式类型 |
RC:RcNtf | 撤回通知消息 | 通知类 | 已收录为撤回通知类型 |
RC:InfoNtf | 提示条通知消息 | 通知类 | 已收录为提示条类型 |
RC:GrpNtf | 群组通知消息 | 通知类 | 已收录为群组通知类型 |
RC:CmdNtf | 命令提醒消息 | 通知类 | 已收录为命令提醒类型 |
RC:TypSts | 正在输入状态消息 | 状态类 | 已收录为状态类型 |
RC:CmdMsg | 命令消息 | 信令类 | 已收录为命令消息类型 |
RC:RcCmd | 撤回命令消息 | 信令类 | 已收录为撤回命令类型 |
RC:ReadNtf | 单聊已读回执消息 | 信令类 | 已收录为已读通知类型 |
RC:RRReqMsg | 群聊已读回执请求消息 | 信令类 | 已收录为群已读请求类型 |
RC:RRRspMsg | 群聊已读回执响应消息 | 信令类 | 已收录为群已读响应类型 |
RC:SRSMsg | 多端已读状态同步消息 | 信令类 | 已收录为多端已读同步类型 |
RC:chrmKVNotiMsg | 聊天室属性通知消息 | 信令类 | 已收录为聊天室 KV 类型 |
RC:MsgExMsg | 消息扩展功能消息 | 信令类 | 已收录为消息扩展类型 |
RC:VCAccept | 实时音视频接受信令 | 信令类 | 音视频信令组(6 个 objectName)之一 |
RC:CCConfigChangeRequestMsg | 云控配置变更消息 | 内部 | Admin 下发,不存储、不计数,但进离线 |
RC:ChrmBanMsg | 聊天室用户禁言消息 | 内部 | 聊天室合并类信令 |
RC:ChrmBlockMsg | 聊天室用户封禁消息 | 内部 | 聊天室合并类信令 |
RC:ChrmMemChange | 聊天室成员加入退出消息 | 内部 | 聊天室合并类信令 |
RC:ChrmSyncMsg | 聊天室成员变化多端同步 | 内部 | 聊天室合并类信令 |
RC:Delivered | 单聊送达报告 | 内部 | Beem 专用,公有云不处理 |
RC:DRMsg | 群聊送达状态报告 | 内部 | Beem 专用,公有云不处理 |
RC:InterceptMsg | 敏感词拦截消息 | 内部 | 命中敏感词时服务端下发 |
RC:LogCmdMsg | 日志通知消息 | 内部 | SDK 内部日志信令 |
RC:RRMsg | 群已读回执更新消息 | 内部 | 群已读回执 V2 开关时使用 |
RC:RSMsg | 已读回执消息 V4 | 内部 | 群已读回执 V4 开关时使用 |
音视频信令在 38 个 objectName 清单中只收录了 RC:VCAccept 一个代表项;分类表的「实时音视频信令」同时覆盖 RC:VCHangup、RC:VCInvite、RC:VCModifyMedia、RC:VCModifyMem、RC:VCRinging。IMKit 名片 RC:CardMsg 属插件消息,也不在这 38 个服务端 objectName 内,均单独标注。
继续阅读
- 逐类型参考:每种类型的字段、示例 JSON、发送/接收注意点与本项目状态
- 计数、存储与推送策略:矩阵与差异清单
- 发送单聊消息 / 发送群聊消息
- 图解消息流转
融云对应文档(证据)
| 文档 | 文件 | 内容 |
|---|---|---|
| 消息类型概述 | about-message-types.md | 26 种类型的分类、计数/存储/离线/推送策略 |
| 内容结构(用户内容类) | objectname.md | 文本/图片/GIF/图文/文件/语音/小视频/位置/引用/合并转发/流式 |
| 内容结构(通知类) | objectname-notification.md | 撤回通知/提示条/群组通知/命令提醒 |
| 内容结构(状态类) | objectname-status.md | 正在输入状态 |
| 内容结构(信令类) | objectname-callback.md | 命令/撤回命令/已读回执/聊天室 KV/消息扩展/音视频信令 |
| 机读清单 | 公开消息类型清单(38 个 objectName) | 26 documented_types / 38 unique_object_names / 28 matrix_rows |