您好,很抱歉现在才回复您,我们发现昨天的一个故障影响了消息已读数量的处理,现在问题已经解决。
获取会话的 lastReadAt 步骤举例如下:
1.Jerry 给 Tom 发送一条消息,并标注需要已读回执( receipt: true):
Client jerry = Client(id: 'Jerry');
await jerry.open();
try {
// 创建与 Jerry 之间的对话
Conversation conversation = await jerry.createConversation(
isUnique: true, members: {'Tom'}, name: '111');
try {
TextMessage message = TextMessage();
message.text = '一条非常重要的消息。';
await conversation.send(message: message, receipt: true);
//获取会话的 lastReadAt
await conversation.fetchReceiptTimestamps();
print('发送成功');
} catch (e) {
print(e);
}
} catch (e) {
print('创建会话失败:$e');
}
2.Tom 收到消息后标记已读。
Client Tom = Client(id: 'Tom');
await Tom.open();
Tom.onUnreadMessageCountUpdated = ({
Client client,
Conversation conversation,
}) async {
await conversation.read();
};
3.Jerry 监听已读回执,可以打印下 conversation.lastReadAt 测试:
jerry.onMessageRead = ({
Client client,
Conversation conversation,
String messageID,
String byClientID,
DateTime atDate,
}){
print('lastReadAt' + conversation.lastReadAt.toString());
};
对于文档不清晰的地方,我们会继续改进。