更新时间: 2021-03-06
以下文档中标记的:是否计数、是否存储,指的客户端对应的默认配置,如果消息从服务端发出,融云 server 是否存储与消息类型无关; 可以通过发消息时候的isPersisted参数以及通过发送状态消息接口发出来控制融云服务端存储行为。
# 消息分类
消息分类 | 消息行为状态标识 |
---|---|
内容类消息 | 表示一个用户间发送的包含具体内容的消息,需要展现在聊天界面上,如文字消息、语音消息等。 |
通知类消息 | 表示一个通知信息,可能展现在聊天界面上,如提示条通知。 |
状态类消息 | 表示一个状态,用来实现如“对方正在输入”的功能。 |
信令类消息 | 融云在实现 SDK 自身业务功能时使用的,开发者不需要对其做任何处理。 |
内容类消息
消息类型 | ObjectName | 是否计数 | 是否存储 |
---|---|---|---|
文字消息 | RC:TxtMsg | 是 | 是 |
语音消息 | 旧消息类型 RC:VcMsg ,新消息类型 RC:HQVCMsg | 是 | 是 |
图片消息 | RC:ImgMsg | 是 | 是 |
GIF 图片消息 | RC:GIFMsg | 是 | 是 |
图文消息 | RC:ImgTextMsg | 是 | 是 |
文件消息 | RC:FileMsg | 是 | 是 |
位置消息 | RC:LBSMsg | 是 | 是 |
小视频消息 | RC:SightMsg | 是 | 是 |
引用消息 | RC:ReferenceMsg | 是 | 是 |
合并转发消息 | RC:CombineMsg | 是 | 是 |
通知类消息
消息类型 | ObjectName | 是否计数 | 是否存储 |
---|---|---|---|
命令消息 | RC:CmdMsg | 否 | 否 |
联系人(好友)通知消息 | RC:ContactNtf | 否 | 是 |
资料通知消息 | RC:ProfileNtf | 否 | 是 |
提示条通知消息 | RC:InfoNtf | 否 | 是 |
群组通知消息 | RC:GrpNtf | 否 | 是 |
聊天室属性通知消息 | RC:chrmKVNotiMsg | 否 | 是 |
状态类消息
消息类型 | ObjectName | 是否计数 | 是否存储 |
---|---|---|---|
对方正在输入状态消息 | RC:TypSts | 否 | 否 |
单聊已读通知消息 | RC:ReadNtf | 否 | 否 |
群已读状态请求消息 | RC:RRReqMsg | 否 | 否 |
群已读通知消息 | RC:RRRspMsg | 否 | 否 |
多端已读状态同步消息 | RC:SRSMsg | 否 | 否 |
音视频信令消息
内置信令消息是融云在实现 SDK 自身业务功能时使用的,通过融云实时消息路由服务及在服务端下载消息历史记录中获取消息,会包含此类消息,开发者不需要对其做任何处理。提供的信令消息内容如下:
消息类型 | 描述 |
---|---|
RC:VCAccept | 实时音视频接受 |
RC:VCHangup | 实时音视频挂断 |
RC:VCInvite | 实时音视频邀请 |
RC:VCModifyMedia | 实时音视频切换 |
RC:VCModifyMem | 实时音视频成员变化 |
RC:VCRinging | 实时音视频响铃 |
# 内容类消息
# 文本消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:TxtMsg | 存储 | 计数 | 存储 | 推送 | 消息内容 |
消息结构:
发送文本消息时 content 参数的 JSON 结构如下:
{ "content":"Hello world!", "user": { "id":"4242", "name":"Robin", "portrait":"http://example.com/p1.png", "extra":"extra" }, "extra":"" }
已复制
2
3
4
5
6
7
8
9
10
11
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
content | String | 是 | 文字消息的文字内容,包括表情。 |
user | String | 否 | 消息中携带的用户信息,详细查看 user 参数说明。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
user 属性说明:
名称 | 说明 |
---|---|
id | 发送用户 Id。 |
name | 发送用户需要显示的名称。 |
portrait | 发送用户需要显示的头象。 |
extra | 扩展信息,可以放置任意的数据内容。 |
# 图片消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:ImgMsg | 存储 | 计数 | 存储 | 推送 | [图片] |
消息结构:
发送图片消息时 content 参数的 JSON 结构如下:
{ "content":"bhZPzJXimRwrtvc=", "imageUri":"http://p1.cdn.com/fds78ruhi.jpg", "user": { "id":"4242", "name":"Robin", "portrait":"http://example.com/p1.png", "extra":"extra" }, "extra":"" }
已复制
2
3
4
5
6
7
8
9
10
11
12
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
content | String | 是 | 图片缩略图,格式为 JPG,大小建议为 5k,最大不超过 80k,注意在 Base64 进行 Encode 后需要将所有 \r\n 和 \r 和 \n 替换成空。缩略图生成逻辑说明 (opens new window) |
imageUri | String | 是 | 图片上传到图片存储服务器后的地址。 |
user | String | 否 | 消息中携带的用户信息,详细查看 user 参数说明。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
user 属性说明:
名称 | 说明 |
---|---|
id | 发送用户 Id。 |
name | 发送用户需要显示的名称。 |
portrait | 发送用户需要显示的头象。 |
extra | 扩展信息,可以放置任意的数据内容。 |
常见问题:
1、缩略图最大尺寸为:240 x 240 像素,以宽度和高度中较长的边不超过 240 像素等比压缩。
2、大图最大尺寸为:960 x 960 像素,以宽度和高度中较长的边不超过 960 像素等比压缩。
3、图片消息包括两个主要部分:缩略图和大图,如设置为原图发送则为缩略图和原图,缩略图直接 Base64 编码后放入 content
中,大图或原图首先上传到文件服务器(融云 SDK 中默认上传到七牛云存储),然后将云存储上的大图或原图地址放入消息体中。
4、发送图片消息时,需要自行上传图片文件到应用的文件服务器,生成地址后进行发送。
# GIF 图片消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:GIFMsg | 存储 | 计数 | 存储 | 推送 | [图片] |
消息结构:
发送图片消息时 content 参数的 JSON 结构如下:
{ "gifDataSize":34563, "height":246, "localPath":"/var/mobile/.../GIF_53", "remoteUrl":"https://rongcloud-image.cn.ronghub.com/image_jpe64562665566.jpg", "width":263, "user": { "id":"4242", "name":"Robin", "portrait":"http://example.com/p1.png", "extra":"extra" }, "extra":"" }
已复制
2
3
4
5
6
7
8
9
10
11
12
13
14
15
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
gifDataSize | Int | 是 | GIF 图片文件大小,单位为字节 Byte。 |
localPath | String | 是 | 下载 GIF 图片后存储在本地的图片地址。 |
remoteUrl | String | 是 | GIF 图片的服务器地址。 |
width | Int | 是 | GIF 图片宽度。 |
height | Int | 是 | GIF 图片高度。 |
user | String | 是 | 消息中携带的用户信息,IMKit SDK 会话界面中优先显示消息中携带的用户信息,可去掉此属性。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
user 属性说明:
名称 | 说明 |
---|---|
id | 发送用户 Id。 |
name | 发送用户需要显示的名称。 |
portrait | 发送用户需要显示的头象。 |
extra | 扩展信息,可以放置任意的数据内容。 |
# 语音消息
从 SDK 2.9.19 版本开始支持 RC:HQVCMsg
语音消息功能,RC:HQVCMsg
语音消息与旧版本 SDK 不兼容,旧版本 SDK 无法收听新的语音消息。
新语音消息 RC:HQVCMsg
和旧版本语音消息 RC:VcMsg
不同的是将录制的音频数据存储到服务端,而消息体内只保存 URL。摆脱了消息体 128K 的大小限制,所以拥有更高音质。语音时长上限为 60 秒,客户端收到消息后计入未读消息数、进行存储。
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:HQVCMsg | 存储 | 计数 | 存储 | 推送 | [语音] |
消息结构:
发送高质量语音消息时 content 参数的 JSON 结构如下:
{ "localPath":"/9j/4AAQSkZ/2wBaSiimB//9k=", "remoteUrl":"http://p1.cdn.com/fds78ruhi.aac", "duration":7, "user": { "id":"4242", "name":"Robin", "portrait":"http://example.com/p1.png", "extra":"extra" }, "extra":"" }
已复制
2
3
4
5
6
7
8
9
10
11
12
13
参数说明:
参数 | 类型 | 必传 | 说明 |
---|---|---|---|
localPath | String | 否 | 采用 AAC 格式进行编码录制的媒体内容本地路径。 |
remoteUrl | String | 是 | 媒体内容上传服务器后的网络地址。 |
duration | Int | 是 | 语音消息的时长,最长为 60 秒(单位:秒)。 |
user | String | 否 | 消息中携带的用户信息,详细查看 user 参数说明。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
user 参数说明:
名称 | 说明 |
---|---|
id | 发送用户 Id。 |
name | 发送用户需要显示的名称。 |
portrait | 发送用户需要显示的头象。 |
extra | 扩展信息,可以放置任意的数据内容。 |
常见问题
1、发送高质量语音消息时,需要自行生成 AAC 格式文件并上传文件到应用的文件服务器,生成地址后进行发送。
# 文件消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:FileMsg | 存储 | 计数 | 存储 | 推送 | [文件] + 文件名,如:[文件] 123.txt |
消息结构:
发送文件消息时 content 参数的 JSON 结构如下:
{ "name":"file.txt", "size":190184, "type":"txt", "fileUrl":"http://www.demo.com/am.ind", "user": { "id":"4242", "name":"Robin", "portrait":"http://example.com/p1.png", "extra":"extra" }, "extra":"" }
已复制
2
3
4
5
6
7
8
9
10
11
12
13
14
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
name | String | 是 | 文件名称。 |
size | String | 是 | 文件大小,单位:Byte。 |
type | String | 是 | 文件类型。 |
fileUrl | String | 是 | 文件地址。 |
user | String | 否 | 消息中携带的用户信息,详细查看 user 参数说明。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
user 属性说明:
名称 | 说明 |
---|---|
id | 发送用户 Id。 |
name | 发送用户需要显示的名称。 |
portrait | 发送用户需要显示的头象。 |
extra | 扩展信息,可以放置任意的数据内容。 |
常见问题
1、通过 Server API 发送文件消息时,需要自行上传文件到应用的文件服务器,生成文件地址后进行发送。
# 图文消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:ImgTextMsg | 存储 | 计数 | 存储 | 推送 | [图文] |
消息结构:
发送图文消息时 content 参数的 JSON 结构如下:
{ "title":"标题", "content":"消息描述", "imageUri":"http://p1.cdn.com/fds78ruhi.jpg", "url":"http://www.rongcloud.cn", "user": { "id":"4242", "name":"Robin", "icon":"http://example.com/p1.png", "extra":"extra" }, "extra":"" }
已复制
2
3
4
5
6
7
8
9
10
11
12
13
14
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
title | String | 是 | 消息的标题。 |
content | String | 是 | 消息的文字内容。 |
imageUri | String | 是 | 消息中图片地址,图片尺寸为:120 x 120 像素。 |
url | String | 是 | 点击图片消息后跳转的 URL 地址。 |
user | String | 否 | 消息中携带的用户信息,详细查看 user 参数说明。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
user 属性说明:
名称 | 说明 |
---|---|
id | 发送用户 Id。 |
name | 发送用户需要显示的名称。 |
icon | 发送用户需要显示的头象。 |
extra | 扩展信息,可以放置任意的数据内容。 |
常见问题
1、图文消息中的图片文件,需要开发者自行上传到应用的文件服务器,生成文件地址后进行发送。
# 小视频消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:SightMsg | 存储 | 计数 | 存储 | 推送 | [小视频] |
消息结构:
发送小视频消息时 content 参数的 JSON 结构如下:
{ "sightUrl":"http://rongcloud...com/video...", "content":"/9j/4AAQSkZ/2wB...hDSaSiimB//9k=", "duration":2, "size":734320, "name":"video_xx.mp4", "user": { "id":"4242", "name":"Robin", "portrait":"http://example.com/p1.png", "extra":"extra" }, "extra":"extra" }
已复制
2
3
4
5
6
7
8
9
10
11
12
13
14
15
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
sightUrl | String | 是 | 上传到文件服务器的小视频地址。 |
content | String | 是 | 小视频首帧的缩略图进行 Base64 编码的结果值,格式为 JPG,注意在 Base64 进行 Encode 后需要将所有 \r\n 和 \r 和 \n 替换成空。 |
duration | Int | 是 | 视频时长,单位:秒。 |
size | String | 是 | 视频大小单位 Byte。 |
name | String | 是 | 发送端视频的文件名,小视频文件格式为 MP4 。 |
user | String | 否 | 消息中携带的用户信息,详细查看 user 参数说明。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
user 属性说明:
名称 | 说明 |
---|---|
id | 发送用户 Id。 |
name | 发送用户需要显示的名称。 |
portrait | 发送用户需要显示的头象。 |
extra | 扩展信息,可以放置任意的数据内容。 |
常见问题
1、通过 Server API 发送视频消息时,需要自行上传视频文件到应用的文件服务器,生成文件地址后进行发送。
2、IMKit SDK 中目前支持播放的视频文件格式为 mp4,IMLib SDK 中播放功能需要开发者自行实现。
# 位置消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:LBSMsg | 存储 | 计数 | 存储 | 推送 | [位置] |
消息结构:
发送位置消息时 content 参数的 JSON 结构如下:
{ "content":"bhZPzJXimRwrtvc=", "latitude":39.9139, "longitude":116.3917, "poi":"北京云中融信网络科技有限公司", "user": { "id":"4242", "name":"Robin", "portrait":"http://example.com/p1.png", "extra":"extra" }, "extra":"" }
已复制
2
3
4
5
6
7
8
9
10
11
12
13
14
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
content | String | 是 | 表示位置图片缩略图,格式为 JPG,以 Base64 进行 Encode 后需要将所有 \r\n 和 \r 和 \n 替换成空。 |
latitude | String | 是 | 位置的纬度值。 |
longitude | String | 是 | 位置的经度值。 |
poi | String | 是 | 表示位置的 poi 信息。 |
user | String | 否 | 消息中携带的用户信息,详细查看 user 参数说明。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
user 属性说明:
名称 | 说明 |
---|---|
id | 发送用户 Id。 |
name | 发送用户需要显示的名称。 |
portrait | 发送用户需要显示的头象。 |
extra | 扩展信息,可以放置任意的数据内容。 |
# 引用消息
对指定消息内容进行回复发送,目前支持被引用的消息,包括:文本消息、文件消息、图文消息、图片消息,被引用的消息可以再次被引用回复。
一般应用于单聊、群聊场景。
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:ReferenceMsg | 存储 | 计数 | 存储 | 推送 | 消息内容 |
消息结构:
发送引用消息时 content 参数,以引用对象为文本消息为例,结构如下:
{ "content":"消息内容!", "referMsgUserId":"432432", "objName":"RC:TxtMsg", "referMsg":{ "content":"Hello world!", "extra":"" }, "mentionedInfo":{ "type":2, "userIdList":["123","456"], "mentionedContent":"有人@你" }, "user": { "id":"4242", "name":"Robin", "portrait":"http://example.com/p1.png", "extra":"extra" }, "extra":"" }
已复制
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
content | String | 是 | 引用消息时发送的文字内容,包括表情。 |
referMsgUserId | String | 是 | 被引用消息的发送用户 Id。 |
referMsg | String | 是 | 被引用消息的消息结构 JSON 格式。 |
objName | String | 是 | 被引用消息的消息类型,目前支持的消息类型:文本 RC:TxtMsg 、图片 RC:ImgMsg 、文件 RC:FileMsg |
mentionedInfo | String | 否 | 群组中 @ 消息信息,详细查看属性说明,单聊场景下无需设置此属性。 |
user | String | 否 | 消息中携带的用户信息,详细查看 user 参数说明。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
user 属性说明:
名称 | 说明 |
---|---|
id | 发送用户 Id。 |
name | 发送用户需要显示的名称。 |
portrait | 发送用户需要显示的头象。 |
extra | 扩展信息,可以放置任意的数据内容。 |
mentionedInfo 属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
type | int | 是 | @ 功能类型,1 表示 @ 所有人、2 表示 @ 指定用户。 |
userIdList | String[] | 否 | 指定用户列表,type 为 2 时有效,为 1 时 userIdList 可以为空。 |
mentionedContent | String | 否 | @ 消息的自定义 Push 内容。 |
# 合并转发消息
IMKit SDK 中发送的合并转发消息类型,合并后的消息以 HTML 文件的方式存储到融云服务端,客户端收到消息后计入未读消息数、进行存储,该消息只能通过 IMKit SDK 发送。
消息类名 | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:CombineMsg | 存储 | 计数 | 存储 | 推送 | [聊天记录] |
消息结构:
{ "localPath":"file:///storage/emulated/0/Android/data/cn.rongcloud.im/cache/combine/157829828.html", "remoteUrl":"https://rongcloud-html-cn.ronghub.com/text_plain__RC-2019-12-17_754_157130.html?e=1592Q=", "conversationType":1, "nameList":["lisx","ddddd"], "summaryList":["lisx : nzj","ddddd : 记得记得晋级赛","ddddd : 就是就是睡觉觉","lisx : nznznn"] }
已复制
2
3
4
5
6
7
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
localPath | String | 是 | 合并转发消息详细信息的本地 HTML 文件路径。 |
remoteUrl | String | 是 | 存储在融云服务器的远端 HTML 文件路径。 |
conversationType | Int | 是 | 会话类型,目前支持二人会话及群聊会话,二人会话是 1 、群组会话是 3 。 |
nameList | String | 是 | 在会话界面显示的合并转发消息中,前 4 条消息的用户名称。 |
summaryList | String | 是 | 在会话界面显示的合并转发消息中,前 4 条消息的简略信息,与 nameList 属性相对应。 |
# 通知类消息
# 命令消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:CmdMsg | 不存储 | 不计数 | 存储 | 不推送 | 无 |
消息结构:
运营平台向终端发送指令信息时可使用此命令消息,消息中 content 参数的 JSON 结构如下:
{ "name":"AtPerson", "data":"{\"sourceId\":\"9527\"}" }
已复制
2
3
4
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
name | String | 是 | 命令名称,可以自行定义。 |
data | String | 是 | 命令的内容。 |
# 提示小灰条消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:InfoNtf | 存储 | 不计数 | 存储 | 不推送 | 无 |
消息结构:
发送小灰条消息时 content 参数的 JSON 结构如下:
{ "message":"请在聊天中注意人身财产安全", "extra":"" }
已复制
2
3
4
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
message | String | 是 | 提示条消息内容。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
# 资料变更通知消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:ProfileNtf | 存储 | 不计数 | 存储 | 不推送 | 无 |
消息结构:
发送用户资料变更消息时 content 参数的 JSON 结构如下:
{ "operation":"Update", "data":"{\"nickname\":\"韩梅梅\", \"hometown\":\"beijing\"}", "extra":"" }
已复制
2
3
4
5
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
operation | String | 是 | 资料通知操作,可以自行定义。 |
data | String | 是 | 操作的数据。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
# 联系人(好友)通知消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:ContactNtf | 存储 | 不计数 | 存储 | 不推送 | 无 |
消息结构:
发送加好友消息时 content 参数的 JSON 结构如下:
{ "operation":"Request", "sourceUserId":"123", "targetUserId":"456", "message":"我是小艾,能加一下好友吗?", "extra":"" }
已复制
2
3
4
5
6
7
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
operation | String | 是 | 联系人操作的指令,官方针对 operation 属性定义了 "Request", "AcceptResponse", "RejectResponse" 几个常量,也可以由开发者自行扩展。 |
sourceUserId | String | 是 | 发出通知的用户 Id。 |
targetUserId | String | 是 | 单聊会话为接收通知的用户 Id,群聊、聊天室会话为会话 Id。 |
message | String | 是 | 表示请求或者响应消息,如添加理由或拒绝理由。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
# 群组通知消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:GrpNtf | 存储 | 不计数 | 存储 | 不推送 | 无 |
消息结构:
发送群组操作通知消息时 content 参数的 JSON 结构如下:
{ "operatorUserId":"4324", "operation":"Rename", "data":"群组中各种通知的操作数据", "message":"修改本群名为本地生活", "extra":"" }
已复制
2
3
4
5
6
7
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
operatorUserId | String | 是 | 操作人用户 Id。 |
operation | String | 是 | 操作名称,可以自行定义。 |
data | String | 是 | 群组中各种通知的操作数据,详见“群组通知消息结构数据说明”。 |
message | String | 是 | 消息内容。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
群组通知消息结构数据说明:
融云内置的群组操作通知消息结构 JOSN 格式如下:
- 创建群组:
{ "operatorUserId":"4324", "operation":"Create", "data":"{\"operatorNickname\":\"李天\",\"targetGroupName\":\"群名\"}", "message":"创建群组", "extra":"" }
已复制
2
3
4
5
6
7
属性说明:
- operatorUserId 为操作人用户 Id
- operation 操作名,默认为 Create
- data 数据内容,operatorNickname 为操作者,targetGroupName 为群名称
- 修改群名称
{ "operatorUserId":"4324", "operation":"Rename", "data":"{\"operatorNickname\":\"李天\",\"targetGroupName\":\"群名\"}", "message":"修改群名称", "extra":"" }
已复制
2
3
4
5
6
7
属性说明:
- operatorUserId 为操作人用户 Id
- operation 操作名,默认为 Rename
- data 数据内容,operatorNickname 为操作者,targetGroupName 为群名称
- 添加群成员
{ "operatorUserId":"4324", "operation":"Add", "data":"{\"operatorNickname\":\"李天\",\"targetUserIds\":[\"wGPkc0\"],\"targetUserDisplayNames\":[\"腾飞\"]}", "message":"添加群成员", "extra":"" }
已复制
2
3
4
5
6
7
属性说明:
- operatorUserId 为操作人用户 Id
- operation 操作名,默认为 Add
- data 数据内容,operatorNickname 为操作者
- targetUserIds 为被加入群的用户 ID
- targetUserDisplayNames 为被加入群的用户与 targetUserIds 相对应
- 移出群成员
{ "operatorUserId":"4324", "operation":"Kicked", "data":"{\"operatorNickname\":\"李天\",\"targetUserIds\":[\"wGPkc0\"],\"targetUserDisplayNames\":[\"腾飞\"]}", "message":"移出群成员", "extra":"" }
已复制
2
3
4
5
6
7
属性说明:
- operatorUserId 为操作人用户 Id
- operation 操作名,默认为 Kicked
- data 数据内容,operatorNickname 为操作者
- targetUserIds 为被移出群的用户 ID
- targetUserDisplayNames 为被移出群的用户名与 targetUserIds 相对应
- 退出群组
{ "operatorUserId":"4324", "operation":"Quit", "data":"{\"operatorNickname\":\"李天\",\"targetUserIds\":[\"wGPkc0VpO\"],\"targetUserDisplayNames\":[\"腾飞\"],\"newCreatorId\":\"newCreatorId\"}", "message":"退出群组", "extra":"" }
已复制
2
3
4
5
6
7
属性说明:
- operatorUserId 为操作人用户 Id
- operation 操作名,默认为 Quit
- data 数据内容,operatorNickname 为操作者,targetUserIds 为操作者 ID ,targetUserDisplayNames 为操作者
- newCreatorId 如退出群的用户为群创建者则 newCreatorId 为新的群创建者 ID ,否则为 null
- 解散群组
{ "operatorUserId":"4324", "operation":"Dismiss", "data":"{\"operatorNickname\":\"李天\"}", "message":"解散群组", "extra":"" }
已复制
2
3
4
5
6
7
属性说明:
- operatorUserId 为操作人用户 Id
- operation 操作名,默认为 Dismiss
- data 数据内容,operatorNickname 为操作者
# 聊天室属性通知消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:chrmKVNotiMsg | 存储 | 不计数 | 存储 | 不推送 | 无 |
消息结构:
发送聊天室属性通知消息时 content 参数的 JSON 结构如下:
{ "type":1, "key":"name", "value":"主播", "extra":"" }
已复制
2
3
4
5
6
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
type | Int | 是 | 聊天室中对属性操作后发送通知的类型,1 为设置属性内容、2 为删除属性内容。 |
key | String | 是 | 聊天室中属性名称,大小不超过 128 个字符。 |
value | String | 是 | 属性对应的内容,大小不超过 4096 个字符。 |
extra | String | 否 | 通过消息中携带的附加信息,对应到设置属性接口中的 notificationExtra 值。 |
# 状态类消息
# 发送正在输入状态消息
单聊场景下用来发送对方正在输入时的状态消息,客户端收到消息后不计入未读消息数、不存储。
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:TypSts | 不存储 | 不计数 | 不存储 | 不推送 | 无 |
消息结构:
{ "typingContentType":"RC:TxtMsg" }
已复制
2
3
常见问题
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
typingContentType | String | 是 | 正在输入消息类型。 |
# 已读通知消息
用来发送消息已经被接收到的状态消息,客户端收到消息后不计入未读消息数、不存储,此类型消息没有 Push 通知。
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:ReadNtf | 不存储 | 不计数 | 存储 | 无 | 无 |
消息结构:
发送已读通知消息时 content 结构如下:
{ "lastMessageSendTime":1408706337, "messageUId":"XXXXXX", "type":1 }
已复制
2
3
4
5
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
lastMessageSendTime | Int | 是 | 已读的最后一条消息的发送时间。 |
messageUId | String | 是 | 已读的最后一条消息的 UId,消息唯一标识。 |
type | Int | 是 | 会话类型,目前该消息只支持单聊会话,类型为 1。 |
# 群已读状态请求消息
群组中发送一条消息,需要获取此条消息的已读回执时,可向群组中发送已读请求消息。用户收到此条消息后,当指定消息已读后,会向消息发送用户发送已读状态消息。
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:RRReqMsg | 不存储 | 不计数 | 存储 | 无 | 无 |
消息结构:
发送已读通知消息时 content 结构如下:
{ "messageUId":"596E-P5PG-4FS2-7OJK" }
已复制
2
3
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
messageUId | String | 是 | 需要请求已读回执消息的消息 ID |
# 群已读通知消息
用来发送群组中已读的消息状态,客户端收到消息后不计入未读消息数、不存储。
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:RRRspMsg | 不存储 | 不计数 | 存储 | 无 | 无 |
消息结构:
发送已读通知消息时 content 结构如下:
{ "receiptMessageDic":{"wX7zFv8dR":["BJN3-LSG0-7MUC-OR7A"]} }
已复制
2
3
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
receiptMessageDic | String | 是 | 需要回执的消息的字典,Key 为发送者 userId ,Value 是该用户需要回执的消息的 MessageUId 的数组。 |
# 多端已读状态同步消息
用户多端时,一端消息已读后,同步到另一端的已读通知消息
ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|
RC:SRSMsg | 不存储 | 不计数 | 存储 | 无 | 无 |
消息结构:
发送已读通知消息时 content 结构如下:
{ "lastMessageSendTime":1610941689734 }
已复制
2
3
属性说明:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
lastMessageSendTime | Int | 是 | 已读的最后一条消息的发送时间 |
# 信令消息
# 音视频信令消息
内置信令消息是融云在实现 SDK 自身业务功能时使用的,通过融云实时消息路由服务及在服务端下载消息历史记录中获取消息,会包含此类消息,开发者不需要对其做任何处理。提供的信令消息内容如下:
消息类型 | 描述 |
---|---|
RC:VCAccept | 实时音视频接受 |
RC:VCHangup | 实时音视频挂断 |
RC:VCInvite | 实时音视频邀请 |
RC:VCModifyMedia | 实时音视频切换 |
RC:VCModifyMem | 实时音视频成员变化 |
RC:VCRinging | 实时音视频响铃 |