• UIKit
  • SDK
  • 服务端 API
Chat/
SDK/
React Native/
消息/
SDK
  • Run Demo
  • SDK 集成
  • 初始化
  • 登录和注销
  • 消息
    • 消息概述
    • 发送消息
    • 接收消息
    • 历史消息
    • 转发消息
    • 修改消息
    • 消息插入
    • 删除消息
    • 清空消息
    • 撤回消息
    • 在线消息
    • 已读回执
    • 查询消息
    • 群 @ 消息
    • 定向群消息
    • 通知免打扰
    • 消息扩展
  • 群组
    • 产品概述
    • 群组管理
    • 群资料
    • 群成员管理
    • 群成员资料
    • 自定义群属性
    • 社群管理
  • 用户
    • 用户资料
    • 好友管理
    • 好友列表
    • 黑名单
  • 离线推送
    • 离线推送
  • 局部搜索
    • 查找消息
    • 查找好友
    • 查找群组
    • 查找群成员
  • 信令
    • 信令管理
  • Changelog
  • 开发指引
  • 控制台指南
    • 创建和升级应用
    • 基本配置
    • 功能配置
    • 账号管理
    • 群组管理
    • 回调配置
  • 产品介绍
    • 消息管理
      • 单聊消息
      • 消息存储
      • 离线推送
      • 群消息
      • 消息格式
    • 账号系统
      • 登陆验证
      • 在线状态管理
    • 群相关
      • 群组系统
      • 群组管理
    • 用户资料和关系链
      • 资料管理
      • 关系链管理
  • 购买指南
    • 计费概述
    • 价格中心
  • 错误码

消息概述

消息类介绍

在腾讯云 IM SDK 中,消息类为 V2TimMessage (Details) 。您在发送和接收消息过程中都会频繁地用到该类。
V2TimMessage 类定义了以下内容:
属性
含义
说明
msgID
消息 ID
消息创建的时候为空,调用 sendMessage 的时候同步返回。
timestamp
消息时间戳
消息发送到服务端的时间。可用于消息排序。
sender
消息发送者的 userID
客户自己设置,跟 login 时传入的 userID 一致。
nickName
消息发送者的昵称
客户自己设置。调用 setSelfInfo 设置及修改。详情可参见 用户资料
friendRemark
消息发送者的好友备注
接收方使用。例如 alice 给好友 bob 备注为 "bob01"。当 bob 给 alice 发消息,此时对于 alice 而言,消息中的 friendRemark 为 "bob01"。调用 setFriendInfo 设置。
nameCard
发送者的群名片
仅群聊消息有效。例如 alice 修改自己的群名片为 "doctorA",那么 alice 往群里发送的消息,群成员收到的消息 nameCard 字段值为 "doctorA"。接收者可以将这个字段优先作为用户名称的显示。调用 setGroupMemberInfo 设置。
faceURL
消息发送者头像
客户自己设置的头像 URL,可以通过它下载头像图片。
groupID
群组 ID
群聊消息中 groupID 为群组 ID;单聊消息中 groupID 为 nil。
userID
用户 ID
单聊消息中 userID 为对端用户 ID;群聊消息中 userID 为 nil。
seq
消息序列号
单聊消息的 seq 由本地生成,不能保证严格递增且唯一;群聊消息的 seq 由服务器生成,在当前群里的严格递增且唯一的。
random
消息随机码
SDK 内部生成。
status
消息发送状态
目前支持:发送中、发送成功、发送失败、被删除、导入到本地、被撤销。
isSelf
消息发送者是否是自己
可用于消息筛选。
needReadReceipt
消息是否需要已读回执
需要购买旗舰版套餐。详情可参见 已读回执
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
合并消息存储元素
发送合并位置消息需要创建并填充该元素;收到消息判断 elemType 为 MERGER 时,可以从 mergerElem 中解析出内容。详情可参见 转发消息
groupTipsElem
群 tips 消息存储元素
群 tips 消息目前只能由服务器发送。SDK 收到消息判断 elemType 为 GROUP_TIPS 时,可以从 groupTipsElem 中解析出内容。详情可参见 接收消息
cloudCustomData
消息自定义数据
发送方设置。内容由用户自定义。云端保存,会发送到对端,程序卸载重装后还能拉取到。
isExcludedFromUnreadCount
消息是否不计入会话未读数
发送方设置。默认为需要计入会话未读数。5.3.425 及以上版本支持。
isExcludedFromLastMessage
消息是否不计入会话 lastMsg
发送方设置。默认为需要计入会话 lastMsg。5.4.666 及以上版本支持。
offlinePushInfo
自定义离线推送信息
详情可参见 离线推送
isRead
消息是否本端已读
如果是自己发的消息,默认已读。
isPeerRead
消息是否对端已读
仅单聊消息有效。
localCustomData
消息自定义数据
发送方设置。本地保存,不会发送到对端,程序卸载重装后失效。
localCustomInt
消息自定义数据
发送方设置。本地保存,不会发送到对端,程序卸载重装后失效。可以用来标记语音、视频消息是否已经播放。

消息分类

腾讯云 IM 消息按照消息的发送目标可以分为:“单聊消息”(又称 “C2C 消息”)和“群聊消息” 两种:
消息分类
API 关键词
说明
单聊消息
C2CMessage
又称 C2C 消息,在发送时需要指定消息接收者的 UserID,只有接受者可以收到该消息。
群聊消息
GroupMessage
在发送时需要指定目标群组的 groupID,该群中的所有用户均能收到消息。
按照消息承载的内容可以分为 “文本消息”、“自定义(信令)消息”,“图片消息”、“视频消息”、“语音消息”、“文件消息”、“位置消息”、“合并消息” 等几种类型。
消息分类
API 关键词
说明
文本消息
TextElem
普通的文字消息。
自定义消息
CustomElem
一段二进制 buffer,通常用于传输您应用中的自定义信令。
图片消息
ImageElem
SDK 会在发送原始图片的同时,自动生成两种不同尺寸的缩略图,三张图分别被称为原图、大图、微缩图。
视频消息
VideoElem
一条视频消息包含一个视频文件和一张配套的缩略图。
语音消息
SoundElem
支持语音是否播放红点展示。
文件消息
FileElem
文件消息最大支持 100MB。
位置消息
LocationElem
地理位置消息由位置描述、经度(longitude )和纬度(latitude)三个字段组成。
合并消息
MergerElem
最大支持 300 条消息合并。

消息存储策略

腾讯云 IM 消息按照消息存储策略,可以分为两种消息:在线消息、非在线消息。 在线消息是指只有当用户在线时才能接收到,离线后不会通过离线推送下发给用户。非在线消息是指无论用户是否在线,都能收到的消息。
在线消息会实时下发,不会存储在服务端。SDK 也不会存储在线消息。所以换设备或卸载后重新安装 App 拉取历史消息都不能拉到此类消息。
说明:
1. 直播群所有的消息都属于在线消息。
2. 全员推送的消息都属于在线消息。
非在线消息会被 SDK 和服务端存储。漫游服务器默认存储 7 天的消息。如果您希望存储超过 7 天,需要购买增值服务。服务内容和计费请查看 增值服务资费
换设备或卸载后重新安装 App 拉取历史消息可以拉到此类消息。