介绍
消息类介绍
V2TIMMessage 类定义了以下内容:
属性 | 含义 | 说明 |
msgID | 消息 ID | 消息创建的时候为空,调用 sendMessage 的时候同步返回。 |
timestamp | 消息时间戳 | 消息发送到服务端的时间。可用于消息排序。 |
sender | 消息发送者的 userID | 客户自己设置,跟登录时传入的 userID 一致。 |
nickName | 消息发送者的昵称 | |
friendRemark | 消息发送者的好友备注 | 接收方使用。例如 alice 给好友 bob 备注为 "bob01"。当 bob 给 alice 发消息,此时对于 alice 而言,消息中的 friendRemark 为 "bob01"。调用 setFriendInfo 设置。 |
nameCard | 发送者的群名片 | 仅群聊消息有效。例如 alice 修改自己的群名片为 "doctorA",那么 alice 往群里发送的消息,群成员收到的消息 nameCard 字段值为 "doctorA"。接收者可以将这个字段优先作为用户名称的显示。nameCard 需要调用 setGroupMemberInfo 设置。详情可参见 群成员资料。 |
faceURL | 消息发送者头像 | 客户自己设置的头像 URL,可以通过它下载头像图片。 |
groupID | 群组 ID | 群聊消息中 groupID 为群组 ID;单聊消息中 groupID 为 nil。 |
userID | 用户 ID | 单聊消息中 userID 为对端用户 ID;群聊消息中 userID 为 nil。 |
seq | 消息序列号 | 单聊消息的 seq 由本地生成,不能保证严格递增且唯一;群聊消息的 seq 由服务器生成,在当前群里的严格递增且唯一的。 |
random | 消息随机码 | SDK 内部生成。 |
status | 消息发送状态 | 目前支持:发送中、发送成功、发送失败、被删除、导入到本地、被撤销。 |
isSelf | 消息发送者是否是自己 | 可用于消息筛选。 |
needReadReceipt | 消息是否需要已读回执 | |
isBroadcastMessage | 是否是广播消息 | |
priority | 消息优先级 | 仅群聊消息有效。通过 sendMessage 接口设置。 |
groupAtUserList | 群消息被 @ 的用户列表 | 仅群聊消息有效。列表中存储的是 userID。详情可参考 群 @ 消息。 |
elemType | 消息类型 | 目前支持:文本、自定义内容、图片、语音、视频、文件、地理位置、表情、群 tips、合并转发消息。详情可参考 消息分类。 |
textElem | 文本消息存储元素 | 发送文本消息需要创建并填充该元素;收到消息判断 elemType 为 TEXT 时,可以从 textElem 中解析出内容。详情可参考 发送消息 / 接收消息。 |
customElem | 自定义消息存储元素 | 发送自定义消息需要创建并填充该元素;收到消息判断 elemType 为 CUSTOM 时,可以从 customElem 中解析出内容。 |
imageElem | 图片消息存储元素 | 发送图片消息需要创建并填充该元素;收到消息判断 elemType 为 IMAGE 时,可以从 imageElem 中解析出内容。 |
soundElem | 语音消息存储元素 | 发送语音消息需要创建并填充该元素;收到消息判断 elemType 为 SOUND 时,可以从 soundElem 中解析出内容。 |
videoElem | 视频消息存储元素 | 发送视频消息需要创建并填充该元素;收到消息判断 elemType 为 VIDEO 时,可以从 videoElem 中解析出内容。 |
fileElem | 文件消息存储元素 | 发送文件消息需要创建并填充该元素;收到消息判断 elemType 为 FILE 时,可以从 fileElem 中解析出内容。 |
locationElem | 地理位置消息存储元素 | 发送地理位置消息需要创建并填充该元素;收到消息判断 elemType 为 LOCATION 时,可以从 locationElem 中解析出内容。 |
faceElem | 表情消息存储元素 | 发送地理位置消息需要创建并填充该元素;收到消息判断 elemType 为 FACE 时,可以从 faceElem 中解析出内容。 |
mergerElem | 合并消息存储元素 | |
groupTipsElem | 群 tips 消息存储元素 | 群 tips 消息目前只能由服务器发送。SDK 收到消息判断 elemType 为 GROUP_TIPS 时,可以从 groupTipsElem 中解析出内容。 |
cloudCustomData | 消息自定义数据 | 发送方设置。内容由用户自定义。云端保存,会发送到对端,程序卸载重装后还能拉取到。 |
isExcludedFromUnreadCount | 消息是否不计入会话未读数 | |
isExcludedFromLastMessage | 消息是否不计入会话 lastMsg | |
isExcludedFromContentModeration | 消息是否不过内容审核(云端审核) | 发送方设置。默认为需要过内容审核。7.1 及以上版本支持。只有在开通云端审核功能后设置才有效。 |
hasRiskContent | 是否被标记为有安全风险的消息 | 暂时只支持语音和视频消息,只有在开通云端审核功能后才有效,如果您发送的语音或视频消息内容不合规,云端异步审核后会触发 SDK 的
onRecvMessageModified 回调,回调里的 message 对象该字段值为 true。 |
disableCloudMessagePreHook | 是否禁用消息发送前云端回调 | 发送方设置。默认不禁用消息发送前云端回调。8.1 及以上版本支持。 |
disableCloudMessagePostHook | 是否禁用消息发送后云端回调 | 发送方设置。默认不禁用消息发送后云端回调。8.1 及以上版本支持。 |
isRead | 消息是否本端已读 | 如果是自己发的消息,默认已读。 |
isPeerRead | 消息是否对端已读 | 仅单聊消息有效。 |
localCustomData | 消息自定义数据 | 发送方设置。本地保存,不会发送到对端,程序卸载重装后失效。 |
localCustomInt | 消息自定义数据 | 发送方设置。本地保存,不会发送到对端,程序卸载重装后失效。可以用来标记语音、视频消息是否已经播放。 |
消息分类
按照消息的发送目标,消息可以分为:“单聊消息”(又称 “C2C 消息”)和“群聊消息” 两种:
消息分类 | API 关键词 | 说明 |
单聊消息 | C2CMessage | 又称 C2C 消息,在发送时需要指定消息接收者的 UserID ,只有接受者可以收到该消息。 |
群聊消息 | GroupMessage | 在发送时需要指定目标群组的 groupID ,该群中的所有用户均能收到消息。 |
按照消息承载的内容可以分为 “文本消息”、“自定义(信令)消息”,“图片消息”、“视频消息”、“语音消息”、“文件消息”、“位置消息”、“合并消息”、“群 tips 消息”等几种类型。
消息分类 | API 关键词 | 说明 |
文本消息 | TextElem | 普通的文字消息。 |
自定义消息 | CustomElem | 一段二进制 buffer,通常用于传输您应用中的自定义信令。 |
图片消息 | ImageElem | SDK 会在发送原始图片的同时,自动生成两种不同尺寸的缩略图,三张图分别被称为原图、大图、微缩图。 |
视频消息 | VideoElem | 一条视频消息包含一个视频文件和一张配套的缩略图。 |
语音消息 | SoundElem | 支持语音是否播放红点展示。 |
文件消息 | FileElem | 文件消息最大支持 100 MB。 |
位置消息 | LocationElem | 地理位置消息由位置描述、经度(longitude )和纬度(latitude)三个字段组成。 |
合并消息 | MergerElem | 适用于合并转发聊天记录等场景,最大支持 300 条消息合并。 |
消息存储策略
腾讯云 IM 消息按照消息存储策略,可以分为两种消息:在线消息、非在线消息。 在线消息是指只有当用户在线时才能接收到,离线后不会通过离线推送下发给用户。非在线消息是指无论用户是否在线,都能收到的消息。
在线消息会实时下发,不会存储在服务端。SDK 也不会存储在线消息。所以换设备或卸载后重新安装 App 拉取历史消息都不能拉到此类消息。
说明:
1. 直播群所有的消息都属于在线消息。
2. 全员推送的消息都属于在线消息。
非在线消息会被 SDK 和服务端存储。漫游服务器默认存储 7 天的消息。如果您希望存储超过 7 天,需要购买增值服务。
换设备或卸载后重新安装 App 拉取历史消息可以拉到此类消息。