0

我目前正在使用 React 和 Stanza.js 构建一个聊天应用程序。我可以使用以下方法查询两个用户之间的消息:

client.searchHistory([self@hostname], {with: [target@hostname]})

但是,这只会给我这两个用户之间最早的 50 条消息,并且此客户端方法的选项只有“with: string, start: date, and end: date”的参数,无论这些设置是什么to 只会返回 50 条消息。

我可以使用不同的客户端方法来查询两个支持分页请求的用户之间的消息吗?

这是我应该用来允许用户通过在聊天时间线上向上滚动来检索历史文本的正确客户端方法吗?

4

1 回答 1

0

不幸的是,我错过了一个将 MAM 选项描述为扩展 MAM 查询的界面。

为了对两个用户之间交换的所有消息进行分页请求,您可以这样做.. client.searchHistory([self@hostname], {with: [target@hostname], pagination: {[before]: lastQueryId, max: 25} });

其中 [before] 将是在 "" 处初始化的字符串,并且在所有后续请求中,将替换为列表中返回的第一个元素的节查询 id。

查询的结果还将返回一个“完成”值,它是一个布尔值,可以让您知道您是否已到达第一条消息。

于 2021-04-07T00:44:59.090 回答