跳到主要内容

信令类消息格式

即时通讯服务预定义了信令消息,仅用于 SDK 在实现自身业务功能时使用。开发者不需要对其做任何处理。

命令消息

即时通讯服务定义了 ObjectName 为 RC:CmdMsg 的命令消息。与命令提醒消息(RC:CmdNtf)的区别是命令消息不存储,也不会在界面上显示。

调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content 字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。

运营平台向终端发送指令信息时可使用此命令消息。

命令消息包含的「消息内容」为 JSON 对象,结构如下:

{
"name":"AtPerson",
"data":"{\"sourceId\":\"9527\"}"
}

内容结构参数

命令消息内容结构参数如下表所示:

名称类型必传说明
nameString命令名称,可以自行定义。
dataString命令的内容。

客户端默认属性

  • 不会在客户端本地存储
  • 不计入会话消息未读数
  • 默认未支持远程推送通知:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。

撤回命令消息

即时通讯服务定义了 ObjectName 为 RC:RcCmd 的撤回命令消息。

客户端 SDK 中已内置该消息类型。调用客户端撤回消息的 API 时,SDK 内部发送该消息。不建议客户直接发送该消息。

内容结构参数

命令消息内容结构参数如下表所示:

名称类型必传说明
MessageUIdString消息 UID,为服务端生成的全局唯一 ID。
TargetIdString会话 ID。
ChannelIdString超级群频道 ID。
SentTimeString消息发送时间。
ConversationTypeString会话类型。
isAdminboolean是否是管理员操作。
isDeleteboolean指定移动端接收方是否需要从本地删除原始消息记录。为 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
}

内容结构参数

已读通知消息内容结构参数如下表所示:

名称类型必传说明
lastMessageSendTimeInt已读的最后一条消息的发送时间。
messageUIdString已读的最后一条消息的 UId,消息唯一标识。详见表格下方的 messageUId 说明
typeInt会话类型,目前该消息只支持单聊会话,类型为 1。

messageUId 说明

  • 从 Web 端发出的已读通知消息默认包含 messageUId 字段。
  • 从 Android / iOS 等移动端发出的已读通知消息默认不含 messageUId 字段。

客户端默认属性

  • 不会在客户端本地存储
  • 不计入会话消息未读数
  • 默认未支持远程推送通知:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。

群聊已读回执请求消息

即时通讯服务定义了 ObjectName 为 RC:RRReqMsg 的群聊已读回执请求消息。

调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content 字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。

群组中发送一条消息,需要获取此条消息的已读回执时,可向群组中发送已读请求消息。用户收到此条消息后,当指定消息已读后,会向消息发送用户发送已读状态消息。

群聊已读回执请求消息包含的「消息内容」为 JSON 对象,结构如下:

{
"messageUId":"596E-P5PG-4FS2-7OJK"
}

内容结构参数

群聊已读回执请求消息内容结构参数如下表所示:

名称类型必传说明
messageUIdString需要请求已读回执消息的消息 ID

客户端默认属性

  • 不会在客户端本地存储
  • 不计入会话消息未读数
  • 默认未支持远程推送通知:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。

群聊已读回执响应消息

即时通讯服务定义了 ObjectName 为 RC:RRRspMsg 的群聊已读回执响应消息。

调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content 字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。

用来发送群组中已读的消息状态,客户端收到消息后不计入未读消息数、不存储。

群聊已读回执响应消息包含的「消息内容」为 JSON 对象,结构如下:

{
"receiptMessageDic":{"wX7zFv8dR":["BJN3-LSG0-7MUC-OR7A"]}
}

内容结构参数

群聊已读回执响应消息内容结构参数如下表所示:

名称类型必传说明
receiptMessageDicString需要回执的消息的字典,Key 为发送者 userId ,Value 是该用户需要回执的消息的 MessageUId 的数组。

客户端默认属性

  • 不会在客户端本地存储
  • 不计入会话消息未读数
  • 默认未支持远程推送通知:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。

多端已读状态同步消息

即时通讯服务定义了 ObjectName 为 RC:SRSMsg 的多端已读状态同步消息。

调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content 字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。

用户多端时,一端消息已读后,同步到另一端的已读通知消息。

多端已读状态同步消息包含的「消息内容」为 JSON 对象,结构如下:

{
"lastMessageSendTime":1610941689734
}

内容结构参数

多端已读状态同步消息内容结构参数如下表所示:

名称类型必传说明
lastMessageSendTimeInt已读的最后一条消息的发送时间

客户端默认属性

  • 不会在客户端本地存储
  • 不计入会话消息未读数
  • 默认未支持远程推送通知:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。

聊天室属性通知消息

即时通讯服务定义了 ObjectName 为 RC:chrmKVNotiMsg 的聊天室属性通知消息。

调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content 字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。

聊天室属性通知消息包含的「消息内容」为 JSON 对象,结构如下:

{
"type":1,
"key":"name",
"value":"主播",
"extra":""
}

内容结构参数

聊天室属性通知消息内容结构参数如下表所示:

名称类型必传说明
typeInt聊天室中对属性操作后发送通知的类型,1 为设置属性内容、2 为删除属性内容。
keyString聊天室中属性名称,大小不超过 128 个字符。
valueString属性对应的内容,大小不超过 4096 个字符。
extraString通过消息中携带的附加信息,对应到设置属性接口中的 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
}

音视频切换信令消息

音视频切换信令消息 ObjectName 为 RC:VCModifyMedia

{
"callId":"b462616b-1247-4986-b77a-7f438a50bfe6",
"mediaType":1
}

音视频成员变化信令消息

音视频接受信令消息 ObjectName 为 RC:VCModifyMem

{
"platform":"iOS",
"callId":"DBAA6F6A-21DC-4A2E-B353-2EEED958B0FC"
}