历史消息查询

更新时间: 2024/06/14 18:28:37

本文主要介绍如何通过 NERoom SDK 在聊天室中查询历史消息。

功能描述

聊天室没有离线消息和漫游消息,可以通过本文提供的接口查询聊天室消息历史,查询的消息中包括聊天室通知消息。

支持通过查询配置项设置查询的时间段、查询顺序以及查询数量。

查询云端历史消息 以 startTime(单位毫秒)为查询起点,选择查询方向往前或者往后拉取 limit 条消息。

查询结果排序与查询方向有关,若方向往前,则结果排序按时间逆序,反之则结果排序按时间顺序。

实现步骤

  1. 调用 getRoomContext 接口,获取房间上下文。

    调用此方法时,您需要将 roomUid 设置为您所加入房间的 ID。

    func getRoomContext(roomUuid: String) -> NERoomContext?
    
  2. 调用 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)")
    }
}
此文档是否对你有帮助?
有帮助
去反馈
  • 功能描述
  • 实现步骤
  • 示例代码