复现方式:
- 监听
unreadmessages
事件 - 通过
conv.queryMessages
方法获取聊天记录,不管是传入beforeMessageId
还是afterMessageId
,都没法拿到payload.lastMessageId
这条消息。
示例代码如下:
client.on('unreadmessages', async (payload, conv) => {
let messages
messages = await conv.queryMessages({
beforeTime: payload.lastMessageTimestamp,
beforeMessageId: payload.lastMessageId,
limit: payload.count,
})
for (const msg of messages) {
console.log('Message ID:', msg.id, 'Timestamp:', msg.timestamp)
if (msg.id === payload.lastMessageId) {
// will never reach here
console.log('GOT YOU!')
}
}
messages = await conv.queryMessages({
afterTime: payload.lastMessageTimestamp,
afterMessageId: payload.lastMessageId,
limit: 2,
})
for (const msg of messages) {
console.log('Message ID:', msg.id, 'Timestamp:', msg.timestamp)
if (msg.id === payload.lastMessageId) {
// will never reach here
console.log('GOT YOU!')
}
}
})