Skip to content
能力中心
产品中心
应用市场
WebOffice
开发者后台

获取历史消息

可从本地或远端获取历史消息, 协作中台历史消息会在云端完全保存。

获取指定时间之前的消息

查询比lastMsgTime小的最靠近的数据

分为仅从远端获取,仅从本地获取,以及结合一起获取

本地远端结合获取

本方法同时会返回本地未发送成功的消息,且消息连续

接口定义

kotlin
fun getHistoryMessagesFromCloud(
    chatId: String,
    lastMsgTime: Long,
    count: Int,
    callback: IResultCallback<List<KIMCoreMessage>>
)

参数说明

参数类型说明
chatIdString会话 id
lastMsgTimeLong查询历史消息的开始点:
1. 消息对象中的 ctime
2. 传 0 , 表示获取最新 count 条消息
countInt获取消息数量。每页最多 20 条
callbackIResultCallback < List < KIMCoreMessage >>获取历史消息的回调,按照时间降序排列。

代码示例

kotlin
val chatId = "12333"
val lastMsgTime = 12312312312
val count = 10
KIMCore.instance().getHistoryMessages(chatId, lastMsgTime, 10, object :IResultCallback<List<KIMCoreMessage>> {
    override fun onSuccess(result: List<KIMCoreMessage>?) {
        TODO()
    }
    override fun onError(errorCode: ErrorCode) {
        TODO()
    }
})

仅从远端获取

本方法不会返回本地未发送成功的消息

接口定义

kotlin
fun getHistoryMessagesFromCloud(
    chatId: String,
    lastMsgTime: Long,
    count: Int,
    callback: IResultCallback<List<KIMCoreMessage>>
)

参数说明

参数类型说明
chatIdString会话 id
lastMsgTimeLong查询历史消息的开始点:
1. 消息对象中的 ctime
2. 传 0 , 表示获取最新 count 条消息
countInt获取消息数量。每页最多 20 条
callbackIResultCallback < List < KIMCoreMessage >>获取历史消息的回调,按照时间顺序从新到旧排列。

代码示例

kotlin
val chatId = "12333"
val lastMsgTime = 12312312312
val count = 10
KIMCore.instance().getHistoryMessagesFromCloud(chatId, lastMsgTime, 10, object :IResultCallback<List<KIMCoreMessage>> {
    override fun onSuccess(result: List<KIMCoreMessage>?) {
        TODO()
    }
    override fun onError(errorCode: ErrorCode) {
        TODO()
    }
})

仅从本地获取

会返回本地未发送成功的消息。速度最快,但是消息可能断层

接口定义

kotlin
fun getHistoryMessagesFromLocal(
    chatId: String,
    lastMsgTime: Long,
    count: Int,
    callback: IResultCallback<List<KIMCoreMessage>>
)

参数说明

参数类型说明
chatIdString会话 id
lastMsgTimeLong查询历史消息的开始点:
1. 消息对象中的 ctime
2. 传 0 , 表示获取最新 count 条消息
countInt获取消息数量。每页最多 20 条
callbackIResultCallback < List < KIMCoreMessage >>获取历史消息的回调,按照时间顺序从新到旧排列。

代码示例

kotlin
KIMCore.instance().getHistoryMessagesFromLocal(chatId, lastMsgTime, 10, object :IResultCallback<List<KIMCoreMessage>> {
    override fun onSuccess(result: List<KIMCoreMessage>?) {
        TODO()
    }
    override fun onError(errorCode: ErrorCode) {
        TODO()
    }
})

获取指定时间之后的消息

查询比lastMsgTime大的最靠近的数据, 会同时返回本地未发送成功的消息,且消息连续

接口定义

kotlin
fun getHistoryMessagesForward(
    chatId: String,
    lastMsgTime: Long,
    count: Int,
    callback: IResultCallback<List<KIMCoreMessage>>
)

参数说明

参数类型说明
chatIdString所属会话 id
lastMsgTimeLong查询历史消息的开始点,往大于该时间点的方向查询,如果传 0,返回最旧的一页
countInt查询个数
大于0,且不超过100
callbackIResultCallback<List<KIMCoreMessage>>回调,按照时间降序排列。

代码示例

kotlin
KIMCore.instance().getHistoryMessagesForward(chatId, lastMsgTime, 10, new IResultCallback<List<KIMCoreMessage>>() {
            @Override
            public void onSuccess(List<KIMCoreMessage> result) {
            }

            @Override
            public void onError(ErrorCode errorCode) {
            }
        });

获取指定消息

能够指定同个会话中的多个消息 id,同时返回对应的消息数据

接口定义

kotlin
fun getBatchMsgs(
    chatId: String,
    msgIds: List<String>,
    callback: IResultCallback<List<KIMCoreMessage>>
)

参数说明

参数类型说明
chatIdString指定会话 id
msgIdsList<String>批量消息 id
callbackIResultCallback<List<KIMCoreMessage>>回调

代码示例

kotlin
val chatId = "1111"
val msgIds = listOf("1", "2", "3")
KIMCore.instance().getBatchMsgs(chatId, msgIds, object : IResultCallback<List<KIMCoreMessage>> {
        override fun onSuccess(result: List<KIMCoreMessage>?) {
            TODO()
        }
        override fun onError(errorCode: ErrorCode) {
            TODO()
        }
    })