信令类消息格式
即时通讯服务预定义了信令消息,仅用于 SDK 在实现自身业务功能时使用。开发者不需要对其做任何处理。
命令消息
即时通讯服务定义了 ObjectName 为 RC:CmdMsg
的命令消息。与命令提醒消息(RC:CmdNtf
)的区别是命令消息不存储,也不会在界面上显示。
调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content
字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
运营平台向终端发送指令信息时可使用此命令消息。
命令消息包含的「消息内容」为 JSON 对象,结构如下:
{
"name":"AtPerson",
"data":"{\"sourceId\":\"9527\"}"
}
内容结构参数
命令消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
name | String | 是 | 命令名称,可以自行定义。 |
data | String | 是 | 命令的内容。 |
客户端默认属性
- 不会在客户端本地存储
- 不计入会话消息未读数
- 默认未支持远程推送通知:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。
撤回命令消息
即时通讯服务定义了 ObjectName 为 RC:RcCmd
的撤回命令消息。
客户端 SDK 中已内置该消息类型。调用客户端撤回消息的 API 时,SDK 内部发送该消息。不建议客户直接发送该消息。
内容结构参数
命令消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
MessageUId | String | 是 | 消息 UID,为服务端生成的全局唯一 ID。 |
TargetId | String | 是 | 会话 ID。 |
ChannelId | String | 是 | 超级群频道 ID。 |
SentTime | String | 是 | 消息发送时间。 |
ConversationType | String | 是 | 会话类型。 |
isAdmin | boolean | 是 | 是否是管理员操作。 |
isDelete | boolean | 是 | 指定移动端接收方是否需要从本地删除原始消息记录。为 false 时,移动端不会删除原始消息记录,会将消息内容替换为撤回提示(小灰条通知)。为 true 时,移动端会删除原始消息记录,不显示撤回提示(小灰条通知)。Web 端撤回消息接口从 SDK 5.3.1 版本开始支持该参数。 |
客户端默认属性
- 不会在客户端本地存储
- 不计入会话消息未读数
- 默认已支持远程消息推送:
- 推送通知标题:单聊与系统会话消息的推送标题默认为发送者昵称。群组与超级群的推送标题默认为群名称。默认使用注册用户或创建群组时传入即时通讯服务端的数据。您可以在发送消息时自行指定推送标题。发消息时指定的推送标题具有最高优先级。
- 推送通知内容:默认中文推送内容为固定字符串:[撤回了一条消息]。如果为群聊或超级群消息,会带上发送者昵称前缀,例如:发送者昵称:[撤回了一条消息]。可在撤回消息时自定义推送内容。
已读通知消息
即时通讯服务定义了 ObjectName 为 RC:ReadNtf
的已读通知消息。
调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content
字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
用来发送消息已经被接收到的状态消息,客户端收到消息后不计入未读消息数、不存储,此类型消息没有 Push 通知。
已读通知消息包含的「消息内容」为 JSON 对象,结构如下:
{
"lastMessageSendTime":1408706337,
"messageUId":"XXXXXX",
"type":1
}
内容结构参数
已读通知消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
lastMessageSendTime | Int | 是 | 已读的最后一条消息的发送时间。 |
messageUId | String | 是 | 已读的最后一条消息的 UId,消息唯一标识。详见表格下方的 messageUId 说明。 |
type | Int | 是 | 会话类型,目前该消息只支持单聊会话,类型为 1。 |
messageUId
说明
- 从 Web 端发出的已读通知消息默认包含
messageUId
字段。 - 从 Android / iOS 等移动端发出的已读通知消息默认不含
messageUId
字段。
客户端默认属性
- 不会在客户端本地存储
- 不计入会话消 息未读数
- 默认未支持远程推送通知:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。
群聊已读回执请求消息
即时通讯服务定义了 ObjectName 为 RC:RRReqMsg
的群聊已读回执请求消息。
调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content
字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
群组中发送一条消息,需要获取此条消息的已读回执时,可向群组中发送已读请求消息。用户收到此条消息后,当指定消息已读后,会向消息发送用户发送已读状态消息。
群聊已读回执请求消息包含的「消息内容」为 JSON 对象,结构如下:
{
"messageUId":"596E-P5PG-4FS2-7OJK"
}
内容结构参数
群聊已读回执请求消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
messageUId | String | 是 | 需要请求已读回执消息的消息 ID |
客户端默认属性
- 不会在客户端本地存储
- 不计入会话消息未读数
- 默认未支持远程推送通知:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。
群聊已读回执响应 消息
即时通讯服务定义了 ObjectName 为 RC:RRRspMsg
的群聊已读回执响应消息。
调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content
字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
用来发送群组中已读的消息状态,客户端收到消息后不计入未读消息数、不存储。
群聊已读回执响应消息包含的「消息内容」为 JSON 对象,结构如下:
{
"receiptMessageDic":{"wX7zFv8dR":["BJN3-LSG0-7MUC-OR7A"]}
}
内容结构参数
群聊已读回执响应消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
receiptMessageDic | String | 是 | 需要回执的消息的字典,Key 为发送者 userId ,Value 是该用户需要回执的消息的 MessageUId 的数组。 |
客户端默认属性
- 不会在客户端本地存储
- 不计入会话消息未读数
- 默认未支持远程推送通知:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。
多端已读状态同步消息
即时通讯服务定义了 ObjectName 为 RC:SRSMsg
的多端已读状态同步消息。
调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content
字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
用户多端时,一端消息已读后,同步到另一端的已读通知消息。
多端已读状态同步消息包含的「消息内容」为 JSON 对象,结构如下:
{
"lastMessageSendTime":1610941689734
}
内容结构参数
多端已读状态同步消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
lastMessageSendTime | Int | 是 | 已读的最后一条消息的发送时间 |
客户端默认属性
- 不会在客户端本地存储
- 不计入会话消息未读数
- 默认未支持远程推送通知:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。
聊天室属性通知消息
即时通讯服务定义了 ObjectName 为 RC:chrmKVNotiMsg
的聊天室属性通知消息。
调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content
字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
聊天室属性通知消息包含的「消息内容」为 JSON 对象,结构如下:
{
"type":1,
"key":"name",
"value":"主播",
"extra":""
}
内容结构参数
聊天室属性通知消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
type | Int | 是 | 聊天室中对属性操作后发送通知的类型,1 为设置属性内容、2 为删除属性内容。 |
key | String | 是 | 聊天室中属性名称,大小不超过 128 个字符。 |
value | String | 是 | 属性对应的内容,大小不超过 4096 个字符。 |
extra | String | 否 | 通过消息中携带的附加信息,对应到设置属性接口中的 notificationExtra 值。 |
客户端默认属性
- 在客户端本地存储
- 不计入会话消息未读数
- 默认未支持远程推送通知:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。
消息扩展功能消息
消息扩展功能消息仅在超级群业务中使用。客户端无法收到该类消息。
消息扩展功能消息 ObjectName 为 RC:MsgExMsg
。
在超级群消息业务中,设置、删除消息扩展信息时,可通过消息回调或全量消息路由接收到消息扩展功能类消息。客户端无法收到该类消息。
设置消息扩展,消息结构如下:
{
"clear":0,"put":{"123":"示例文本","2":"222","3":"示例文本"}
}
删除消息扩展,消息结构如下:
{
"clear":0,"del":{"123":"示例文本","2":"222","3":"示例文本"}
}
结构说明:
字段 | 描述 |
---|---|
clear | 是否删除全部属性值,1 为删除全部、0 为不删除全部 |
del | 删除指定属性 Key/Value 数组 |
put | 设置消息属性 Key/Value 数组 |
实时音视频信令
使用音视频通话 SDK(CallLib / CallKit)由客户端 SDK 内部处理的消息。全量消息路由数据中会包含这些类型的消息。消息回调服务支持配置这些消息类型。
音视频接受信令消息
音视频接受信令消息 ObjectName 为 RC:VCAccept
。
「消息内容」为 JSON 对象,结构如下:
{
"callId":"DBAA6F6A-21DC-4A2E-B353-2EEED958B0FC",
"mediaType":2,
"deviceId":"NxM4MmRlMDk3ZWU0ZWM3Yw",
"platform":"iOS"
}
音视频挂断信令消息
音视频挂断信令消息 ObjectName 为 RC:VCHangup
。
「消息内容」为 JSON 对象,结构如下:
{
"callId":"D80A1E4B-F3B2-4B71-86F9-C6B9FA0EEEB1",
"deviceId":"YtliMzY1MDc1ZDg4MWFlYQ",
"reason":1,
"platform":"iOS"
}
音视频邀请信令消息
音视频邀请信令消息 ObjectName 为 RC:VCInvite
。
「消息内容」为 JSON 对象,结构如下:
{
"callId":"53287BC6-5805-481D-A8A2-CDEC221EEB5B",
"mediaType":1,
"deviceId":"YTliMzY2MDc1ZDg4MWFlYQ",
"observerUserIds":[
],
"platform":"iOS",
"inviteUserIds":[
"O6fKSQwOt"
],
"channelInfo":{
"Key":"RongRTCChannelKey",
"Id":"53287BC6-5805-481D-A8A2-CDEC221EEB5B"
},
"engineType":4
}