消息概述

消息类介绍

Chat SDK 中 Message 表示消息对象,用于描述一条消息具有的属性,如类型、消息的内容、所属的会话 ID 等。
属性
类型
默认值
说明
ID
String
-
消息 ID。其拼接规则为 ${senderTinyID}-${clientTime}-${random},与 Native Chat 消息的 ID 拼接规则一致。
type
String
-
消息类型,具体如下:
TencentCloudChat.TYPES.MSG_TEXT:文本消息
TencentCloudChat.TYPES.MSG_IMAGE:图片消息
TencentCloudChat.TYPES.MSG_AUDIO:音频消息
TencentCloudChat.TYPES.MSG_VIDEO:视频消息
TencentCloudChat.TYPES.MSG_FILE:文件消息
TencentCloudChat.TYPES.MSG_CUSTOM:自定义消息
TencentCloudChat.TYPES.MSG_MERGER:合并消息
TencentCloudChat.TYPES.MSG_LOCATION:位置消息
TencentCloudChat.TYPES.MSG_GRP_TIP:群提示消息
TencentCloudChat.TYPES.MSG_GRP_SYS_NOTICE:群系统通知消息
payload
Object
-
消息的内容,具体如下:
文本
图片
音频
视频
文件
自定义
合并
conversationID
String
-
消息所属的会话 ID
conversationType
String
-
消息所属会话的类型,具体如下:
TencentCloudChat.TYPES.CONV_C2C:C2C(Client to Client, 端到端) 会话
TencentCloudChat.TYPES.CONV_GROUP:GROUP(群组) 会话
TencentCloudChat.TYPES.CONV_SYSTEM:SYSTEM(系统) 会话
to
String
-
接收方的 userID
from
String
-
发送方的 userID,在消息发送时,会默认设置为当前登录的用户
flow
String
-
消息的流向。
in:收到的消息
out:发出的消息
time
Number
-
消息时间戳。单位:秒
status
String
-
消息状态。
unSend:未发送
success:发送成功
fail:发送失败
isRevoked
Boolean
false
是否被撤回的消息,true 标识被撤回的消息
priority
String
TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL
消息优先级,如果群组内消息超过频率限制,后端会优先投递高优先级消息。支持的枚举值:
TencentCloudChat.TYPES.MSG_PRIORITY_HIGH
TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL (default)
TencentCloudChat.TYPES.MSG_PRIORITY_LOW
TencentCloudChat.TYPES.MSG_PRIORITY_LOWEST
nick
String
''
消息发送者的昵称(需提前调用 updateMyProfile 设置)
avatar
String
''
消息发送者的头像地址(需提前调用 updateMyProfile 设置)
nameCard
String
''
非直播群消息发送者的群名片(也可称之为消息发送者的群昵称),需提前调用 setGroupMemberNameCard 设置
atUserList
Array
[]
群聊时此字段存储被 at 的群成员的 userID
cloudCustomData
String
''
消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)
isDeleted
Boolean
false
是否被删除的消息,true 标识被删除的消息
isModified
Boolean
false
是否被修改过的消息,true 标识被修改过的消息
needReadReceipt
Boolean
false
是否需要已读回执,true 标识需要(仅用于群消息,需要您购买旗舰版套餐)
readReceiptInfo
Object
{
readCount,unreadCount,isPeerRead,timestamp
}
消息已读回执信息
readCount:消息已读数,可通过调用 getMessageReadReceiptList 查询;如果想要查询哪些群成员已读了消息,可调用 getGroupMessageReadMemberList
unreadCount:消息未读数,可通过调用 getMessageReadReceiptList 查询
isPeerRead: C2C 消息对端是否已发送已读回执,消息接收方调用
sendMessageReadReceipt 成功后,消息发送方收到已读回执通知或拉漫游时会更新此属
timestamp:C2C消息对端发送已读回执时间,单位:秒,消息接收方调用 sendMessageReadReceipt 成功后,消息发送方收到已读回执通知或拉漫游时会更新此属性。
isBroadcastMessage
Boolean
false
对所有直播群广播消息,true 标识直播群广播消息(需要您购买旗舰版套餐)
isSupportExtension
Boolean
false
是否支持消息扩展,true 支持 false 不支持(需要您购买旗舰版套餐)
revokerInfo
Object
-
消息撤回者的信息
revokeReason
String
-
消息撤回的原因
hasRiskContent
Boolean
-
图片、语音、视频消息是否被标记为有安全风险的消息,默认为 false

如果您发送的语音或视频消息内容不合规,云端异步审核后 SDK 会触发 MESSAGE_MODIFIED 事件。

TextPayload

Name
Type
Description
text
String
文本消息内容

ImagePayload

Name
Type
Description
uuid
String
图片唯一标识
imageFormat
Format
图片格式类型,JPG/JPEG = 1,GIF = 2,PNG = 3,BMP = 4,其他 = 255
imageInfoArray
Array.<Object>
图片信息
width - 宽度
height - 高度
url - String - 图片地址,可用于渲染
size - Number - 图片大小,单位:Byte
type - Number - 0, 原图; 1, 198p 压缩图; 2, 720p 压缩图

AudioPayload

Name
Type
Description
uuid
String
唯一标识
url
String
音频地址,可用于播放
size
Number
文件大小,单位:Byte
second
Number
音频时长,单位:秒

VideoPayload

Name
Type
Description
videoFormat
String
视频文件的格式
videoSecond
Number
视频文件的时长,单位秒,整型(Web 端创建视频消息时不支持获取视频时长,videoSecond 为0)
videoSize
Number
视频文件大小,单位:Byte
videoUrl
String
视频文件的地址,可用于播放
videoUUID
String
video 唯一标识
snapshotWidth
Number
视频封面图宽度
snapshotHeight
Number
视频封面图高度
snapshotUrl
String
视频封面图地址,可用于渲染(上传插件需要使用 tim-upload-plugin

FilePayload

Name
Type
Description
uuid
String
唯一标识
fileName
String
文件名
fileUrl
String
文件地址
fileSize
Number
文件大小,单位:Byte

CustomPayload

Name
Type
Description
data
String
自定义消息的 data 字段
description
String
自定义消息的 description 字段
extension
String
自定义消息的 extension 字段

MergerPayload

Name
Type
Description
downloadKey
String
下载合并消息的 key, 如果合并消息的体积较大,SDK 会将消息存储在云端,此 key 作为消息的唯一标识
messageList
Array.<SimplifiedMessage>
合并的消息列表
title
String
合并的标题,比如:"大湾区前端人才中心的聊天记录"
abstractList
String
摘要列表,不同的消息类型可以设置不同的摘要信息,比如:文本消息可以设置为:sender: text,图片消息可以设置为:sender: [图片],文件消息可以设置为:sender: [文件]
compatibleText
String
兼容文本,低版本 SDK 如果不支持合并消息,默认会收到一条文本消息,文本消息的内容为 ${compatibleText}
layersOverLimit
Boolean
合并消息嵌套层级是否超过限制。true,则消息被截断;默认值为 false

GeoPayload

Name
Type
Description
description
String
相关描述信息
latitude
Number
纬度
longitude
Number
经度

FacePayload

Name
Type
Description
index
Number
表情索引,用户自定义
data
String
额外数据

GroupTipPayload

Name
Type
Description
groupJoinType
Number
加群类型,具体如下:
0 - 默认值,表示该行为不是加群操作
1 - 申请加群
2 - 邀请加群
operatorID
String
执行该操作的用户 ID
operatorInfo
Object
执行该操作的用户信息(v3.4.2起支持)
operationType
Number
操作类型,具体如下:
1 - 有成员加群
2 - 有群成员退群
3 - 有群成员被踢出群
4 - 有群成员被设为管理员
5 - 有群成员被撤销管理员
6 - 群组资料变更
7 - 群成员资料变更,例如:群成员被禁言
10 - 封禁直播群群成员
11 - 解封直播群群成员
userIDList
Array.<String>
相关的 userID 列表
newGroupProfile
Object
若是群资料变更,该字段存放变更的群资料
muteAllMembers - true - 群成员全体禁言;false - 取消群成员全体禁言
groupCustomField - 该字段存放变更的群自定义字段键值对
memberList
Array.<Object>
当群成员被禁言时,可在该字段中拿到相关信息(可在该字段获取加入群或者退出群的群成员的昵称、头像等信息)
userID - 群成员 userID
muteTime - 被禁言的时长,单位:秒
nick - 群成员的个人昵称
avatar - 群成员的个人头像
duration - 封禁时长,单位:秒
reason - 封禁原因

GroupSystemNoticePayload

Name
Type
Description
operatorID
String
执行该操作的用户 ID
operationType
Number
Operation type. Supported values are as follows:
1 - 有用户申请加群
2 - 申请加群被同意
3 - 申请加群被拒绝
4 - 被踢出群组(若登录态未失效,SDK 仍会保留对应的群会话,如果您想删除会话,请使用 deleteConversation
5 - 群组被解散(若登录态未失效,SDK 仍会保留对应的群会话,如果您想删除会话,请使用 deleteConversation
6 - 创建群组
7 - 邀请加群
8 - 退群(若登录态未失效,SDK 仍会保留对应的群会话,如果您想删除会话,请使用 deleteConversation
9 - 设置管理员
10 - 取消管理员
11 - 群已被回收
12 - 收到加群邀请,被邀请者需要同意或者拒绝
13 - 邀请他人加群,被他人同意
14 - 邀请他人加群,被他人拒绝
15 - 已读上报多终端同步通知
16 - 群成员被禁言或被取消禁言(muteTime 为0表示取消禁言)
20 - 群消息提醒类型多终端、多实例同步通知
21 - 封禁直播群群成员
22 - 解封直播群群成员
23 - 普通群成员邀请用户进群
255 - 用户自定义通知
groupProfile
Object
群组资料
userDefinedField
String
用户自定义字段
handleMessage
Object
处理的附言。例如:user1 申请加入 group1 时,若进群需要验证,且 user1 填写了申请加群的附言。则 group1 的管理员会在相应群系统通知中看到该字段。
messageRemindType
String
TencentCloudChat.TYPES.MSG_REMIND_ACPT_AND_NOTE - the SDK receives a message and throws a MESSAGE_RECEIVED event to notify the access side, which then sends a notification.
TencentCloudChat.TYPES.MSG_REMIND_ACPT_NOT_NOTE - the SDK receives a message and throws a MESSAGE_RECEIVED event to notify the access side, which then does not send a notification.
TencentCloudChat.TYPES.MSG_REMIND_DISCARD - the SDK rejects a message.
TencentCloudChat.TYPES.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT 在线接收消息,离线仅接收群 @消息 的推送