历史消息查询
更新时间: 2024/06/14 18:28:37
本文主要介绍如何通过 NERoom SDK 在聊天室中查询历史消息。
功能描述
聊天室没有离线消息和漫游消息,可以通过本文提供的接口查询聊天室消息历史,查询的消息中包括聊天室通知消息。
支持通过查询配置项设置查询的时间段、查询顺序以及查询数量。
查询云端历史消息 以 startTime(单位毫秒)为查询起点,选择查询方向往前或者往后拉取 limit 条消息。
查询结果排序与查询方向有关,若方向往前,则结果排序按时间逆序,反之则结果排序按时间顺序。
实现步骤
-
调用
getRoomContext
接口,获取房间上下文。调用此方法时,您需要将 roomUid 设置为您所加入房间的 ID。
func getRoomContext(roomUuid: String) -> NERoomContext?
-
调用
fetchChatroomHistoryMessages
实现查询历史消息。func fetchChatroomHistoryMessages(option: NERoomHistoryMessageSearchOption, callback: NECallback<[NERoomChatMessage]>?)
参数名称 类型 描述 option NERoomHistoryMessageSearchOption 查询配置项,请参见下文。 callback NECallback<[NERoomChatMessage]>?? 查询历史消息的回调。 NERoomHistoryMessageSearchOption 参数说明:
参数名称 类型 描述 startTime TimeInterval 检索消息起始时间,需要检索的起始时间,默认为 0。 order NERoomMessageSearchOrder 查询顺序,默认为 desc,即从新消息往旧消息查询;若设置为 asc,则从旧消息往新消息查询。 limit UInt 查询条数,最大值为100,默认值为 0。
示例代码
实现历史消息查询的示例代码如下:
let roomContext = NERoomKit.shared().roomService.getRoomContext(roomUuid: "房间ID")
guard let roomContext = roomContext else {
return
}
let option = NERoomHistoryMessageSearchOption()
option.startTime = {起始时间}
option.limit = 20
option.order = .desc
roomContext.chatController.fetchChatroomHistoryMessages(option: option) { code, msg, messages in
if (code == 0) {
print("获取历史消息成功")
} else {
print("获取历史消息失败. Code: \(code). Msg: \(msg)")
}
}
此文档是否对你有帮助?