消息功能
更新时间:
本文介绍RTM基础功能中的消息功能,您可以了解消息功能的使用方法等内容。
功能简介
RTM支持发送P2P消息、多人消息、群组消息、房间消息、广播消息等多种形式的实时消息,发送消息内容包括文字、图片、语音、视频、离线语音消息等多种文件类型,同时提供历史消息存储和查询等功能。
功能
描述
消息发送
发送P2P消息、多人消息、群组消息、房间消息、广播消息
查询消息详细信息
根据收发用户ID、消息ID等查询消息的详细内容
获取历史消息记录
获取P2P消息、多人消息、群组消息、房间消息、广播消息的历史记录
获取未读消息数量
获取用户离线状态下未收到的消息的数量
删除历史消息记录
根据收发用户ID、消息ID等删除消息的历史记录
消息转发
将业务客户端发送的消息转发至业务服务器
离线消息推送
当用户离线时,可将离线消息通过iOS和Android系统推送到用户终端
消息数据结构
所有发送消息类接口,均需提供以下基本参数:
参数名称
参数类型
参数说明
msg
文本
二进制
指消息的内容,支持文本和二进制形式
attrs
文本
指消息的额外属性,为字符串类型,默认可为空
实际使用中可用来传递如昵称、头像等额外信息
mytype
int8
指消息的类型值,业务可自定义 mtype 的值,用来区分不同的业务消息。自定义的 mtype 的取值范围在 [51, 127] 之间。
控制台消息配置
- 消息刷屏数量限制:针对不同消息类型 mtype 配置允许用户每秒最多发送和接收消息数量限制。请参考:控制台操作-RTM项目创建和配置-设置项目详细内容
- 多人消息的人数上限: 调用发送多人消息接口时,单次调用最多可操作的人数。请参考:控制台操作-RTM项目创建和配置-设置项目消息
- 消息长度上限: 单条消息的内容最大可允许的长度。请参考:控制台操作-RTM项目创建和配置-设置项目详细内容
- 消息属性长度上限: 单条消息的属性最大可允许的长度。请参考:控制台操作-RTM项目创建和配置-设置项目详细内容
功能详情
消息发送
用户业务客户端使用RTM客户端SDK发送消息,包括P2P消息、多人消息、群组消息、房间消息和广播消息。
广播消息只允许RTM服务端SDK通过管理员ID进行发送。管理员ID默认 111 。
请参考:控制台操作-RTM项目创建和配置-设置项目信息
RTM客户端SDK 与 RTM服务端SDK 均支持文件消息和离线语音消息的发送。其中:
- 文件消息包括图片、语音、视频和通用文件等各种类型消息
- 离线语音是指语音消息。RTM客户端SDK 提供语音的采集、编码、传输及转文字等功能。
文件消息发送
RTM客户端SDK与RTM服务端SDK提供了文件发送接口,可发送各类型的文件消息,文件发送相关代码如下:
客户端
服务端
文件消息推送处理方式,请参考消息与事件推送功能.
离线语音消息发送
RTM客户端SDK提供了语音的采集、编码、传输、播放及转文字等功能,离线语音消息发送相关代码如下:
离线语音消息推送处理方式,请参考消息与事件推送功能.
查询消息详细信息
RTM提供通过用户ID、消息ID进行消息查询。
获取历史消息记录
P2P、群组、房间、广播消息均支持获取历史消息记录功能。
接口输入参数说明:
参数名称
可选性
类型
参数描述
peerUid
必选
int64
需要获取历史消息的用户ID
groupId
必选
int64
需要获取历史消息的群组ID
roomId
必选
int64
需要获取历史消息的房间ID
desc
必选
Bool
返回的历史记录的顺序:
true:由新到旧
false:由旧到新
count
必选
int32
返回的历史记录的数量
beginMsec
可选
int64
开始毫秒时间戳
endMsec
可选
int64
结束毫秒时间戳
lastId
可选
int64
返回结果中最后一条消息的ID,主要用于分页
mtypes
可选
List<Int64.>
消息的 mtypes 列表,用于筛选不同类型的消息
返回结果参数说明:
参数名称
类型
参数描述
count
int32
历史记录数量
beginMsec
int64
开始毫秒时间戳
endMsec
int64
结束毫秒时间戳
lastCursorId
int64
最后一条消息的ID,用于下一次分页
messages
List<HistoryMessage.>
消息的列表
- 历史消息保存:通过RTM客户端SDK或RTM服务端SDK发送的消息默认不保存历史,如需保存,需要在 控制台操作-RTM项目创建和配置-设置项目消息 中配置需要保存的消息类型 mtype。历史消息默认保存时限为 7 天,单个 session 最多保存 500 条。如需调整该限制,请参考:控制台操作-RTM项目创建和配置-设置项目消息。
自定义的消息类型 mytype = [51,127],只有当设置了 历史消息保存 后才能获取历史消息记录。
获取未读消息数量
RTM 提供对P2P消息、群组消息的获取未读消息数量的功能。
接口输入参数说明:
参数名称
可选性
类型
参数描述
userIds
必选
Set<Int64.>
需要获取未读消息数的用户ID
groupIds
必选
Set<Int64.>
需要获取未读消息数的群组ID
startTime
可选
int64
开始计算毫秒时间戳,返回该时间点后的消息数
如果不传该参数则默认使用用户上次离线时间
mtypes
可选
Set<Int8.>
筛选消息类型
如果不传该参数,则只返回聊天的未读消息数
返回结果参数说明:
参数名称
类型
参数描述
unreadDictionary
Dictionary<Int64, int>
userId 或 groupId 对应的未读消息数字典
lastTimeDictionary
Dictionary<Int64, int>
userId 或 groupId 对应的每个 session 的最新一条消息毫秒时间戳字典
获取未读消息数同样基于保存的历史消息记录实现,未保存历史记录的消息无法获取未读消息数目。
删除历史消息记录
RTM提供通过用户ID、消息ID进行消息历史记录的删除。
消息转发
RTM支持将客户端发送的消息根据不同的消息类型 mtype 转发至业务服务器,实现消息转发功能。
相关文档请参考:消息回调。
离线消息推送
RTM支持为离线用户提供,以iOS和Android的系统通知的方式,推送消息到用户设备,实现离线消息推送功能。
相关文档请参考:基本功能-增值服务-离线消息推送。
本文介绍RTM基础功能中的消息功能,您可以了解消息功能的使用方法等内容。
功能简介
RTM支持发送P2P消息、多人消息、群组消息、房间消息、广播消息等多种形式的实时消息,发送消息内容包括文字、图片、语音、视频、离线语音消息等多种文件类型,同时提供历史消息存储和查询等功能。
功能 | 描述 |
---|---|
消息发送 | 发送P2P消息、多人消息、群组消息、房间消息、广播消息 |
查询消息详细信息 | 根据收发用户ID、消息ID等查询消息的详细内容 |
获取历史消息记录 | 获取P2P消息、多人消息、群组消息、房间消息、广播消息的历史记录 |
获取未读消息数量 | 获取用户离线状态下未收到的消息的数量 |
删除历史消息记录 | 根据收发用户ID、消息ID等删除消息的历史记录 |
消息转发 | 将业务客户端发送的消息转发至业务服务器 |
离线消息推送 | 当用户离线时,可将离线消息通过iOS和Android系统推送到用户终端 |
消息数据结构
所有发送消息类接口,均需提供以下基本参数:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
msg | 文本 二进制 |
指消息的内容,支持文本和二进制形式 |
attrs | 文本 | 指消息的额外属性,为字符串类型,默认可为空 实际使用中可用来传递如昵称、头像等额外信息 |
mytype | int8 | 指消息的类型值,业务可自定义 mtype 的值,用来区分不同的业务消息。自定义的 mtype 的取值范围在 [51, 127] 之间。 |
控制台消息配置
- 消息刷屏数量限制:针对不同消息类型 mtype 配置允许用户每秒最多发送和接收消息数量限制。请参考:控制台操作-RTM项目创建和配置-设置项目详细内容
- 多人消息的人数上限: 调用发送多人消息接口时,单次调用最多可操作的人数。请参考:控制台操作-RTM项目创建和配置-设置项目消息
- 消息长度上限: 单条消息的内容最大可允许的长度。请参考:控制台操作-RTM项目创建和配置-设置项目详细内容
- 消息属性长度上限: 单条消息的属性最大可允许的长度。请参考:控制台操作-RTM项目创建和配置-设置项目详细内容
功能详情
消息发送
用户业务客户端使用RTM客户端SDK发送消息,包括P2P消息、多人消息、群组消息、房间消息和广播消息。
广播消息只允许RTM服务端SDK通过管理员ID进行发送。管理员ID默认 111 。
请参考:控制台操作-RTM项目创建和配置-设置项目信息
RTM客户端SDK 与 RTM服务端SDK 均支持文件消息和离线语音消息的发送。其中:
- 文件消息包括图片、语音、视频和通用文件等各种类型消息
- 离线语音是指语音消息。RTM客户端SDK 提供语音的采集、编码、传输及转文字等功能。
文件消息发送
RTM客户端SDK与RTM服务端SDK提供了文件发送接口,可发送各类型的文件消息,文件发送相关代码如下:
客户端 | 服务端 |
---|---|
文件消息推送处理方式,请参考消息与事件推送功能.
离线语音消息发送
RTM客户端SDK提供了语音的采集、编码、传输、播放及转文字等功能,离线语音消息发送相关代码如下:
离线语音消息推送处理方式,请参考消息与事件推送功能.
查询消息详细信息
RTM提供通过用户ID、消息ID进行消息查询。
获取历史消息记录
P2P、群组、房间、广播消息均支持获取历史消息记录功能。
接口输入参数说明:
参数名称 | 可选性 | 类型 | 参数描述 |
---|---|---|---|
peerUid | 必选 | int64 | 需要获取历史消息的用户ID |
groupId | 必选 | int64 | 需要获取历史消息的群组ID |
roomId | 必选 | int64 | 需要获取历史消息的房间ID |
desc | 必选 | Bool | 返回的历史记录的顺序: true:由新到旧 false:由旧到新 |
count | 必选 | int32 | 返回的历史记录的数量 |
beginMsec | 可选 | int64 | 开始毫秒时间戳 |
endMsec | 可选 | int64 | 结束毫秒时间戳 |
lastId | 可选 | int64 | 返回结果中最后一条消息的ID,主要用于分页 |
mtypes | 可选 | List<Int64.> | 消息的 mtypes 列表,用于筛选不同类型的消息 |
返回结果参数说明:
参数名称 | 类型 | 参数描述 |
---|---|---|
count | int32 | 历史记录数量 |
beginMsec | int64 | 开始毫秒时间戳 |
endMsec | int64 | 结束毫秒时间戳 |
lastCursorId | int64 | 最后一条消息的ID,用于下一次分页 |
messages | List<HistoryMessage.> | 消息的列表 |
- 历史消息保存:通过RTM客户端SDK或RTM服务端SDK发送的消息默认不保存历史,如需保存,需要在 控制台操作-RTM项目创建和配置-设置项目消息 中配置需要保存的消息类型 mtype。历史消息默认保存时限为 7 天,单个 session 最多保存 500 条。如需调整该限制,请参考:控制台操作-RTM项目创建和配置-设置项目消息。
自定义的消息类型 mytype = [51,127],只有当设置了 历史消息保存 后才能获取历史消息记录。
获取未读消息数量
RTM 提供对P2P消息、群组消息的获取未读消息数量的功能。
接口输入参数说明:
参数名称 | 可选性 | 类型 | 参数描述 |
---|---|---|---|
userIds | 必选 | Set<Int64.> | 需要获取未读消息数的用户ID |
groupIds | 必选 | Set<Int64.> | 需要获取未读消息数的群组ID |
startTime | 可选 | int64 | 开始计算毫秒时间戳,返回该时间点后的消息数 如果不传该参数则默认使用用户上次离线时间 |
mtypes | 可选 | Set<Int8.> | 筛选消息类型 如果不传该参数,则只返回聊天的未读消息数 |
返回结果参数说明:
参数名称 | 类型 | 参数描述 |
---|---|---|
unreadDictionary | Dictionary<Int64, int> | userId 或 groupId 对应的未读消息数字典 |
lastTimeDictionary | Dictionary<Int64, int> | userId 或 groupId 对应的每个 session 的最新一条消息毫秒时间戳字典 |
获取未读消息数同样基于保存的历史消息记录实现,未保存历史记录的消息无法获取未读消息数目。
删除历史消息记录
RTM提供通过用户ID、消息ID进行消息历史记录的删除。
消息转发
RTM支持将客户端发送的消息根据不同的消息类型 mtype 转发至业务服务器,实现消息转发功能。 相关文档请参考:消息回调。
离线消息推送
RTM支持为离线用户提供,以iOS和Android的系统通知的方式,推送消息到用户设备,实现离线消息推送功能。 相关文档请参考:基本功能-增值服务-离线消息推送。