查询会话
2026-11-06
功能简介
ZIM 支持通过指定会话 ID 查询单个会话的详细信息,也支持批量查询多个指定会话的详细信息。
查询单个会话
用户登录后,可以调用 queryConversation 接口,指定会话 ID 及会话类型,获取对应会话的详细信息(包括会话名称、会话未读数、会话通知状态等)。
// 查询会话信息
zim_->queryConversation(
"conv_id", conv_type,
[=](std::shared_ptr<zim::ZIMConversation> conv, const zim::ZIMError &errorInfo) {
// 查询会话操作的结果回调
if (errorInfo.code == zim::ZIMErrorCode::ZIM_ERROR_CODE_SUCCESS) {
} else {
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
}
});批量查询会话
自 3.3.0 版本起,ZIM 支持批量查询会话。
用户登录后,可以调用 queryConversations 接口,传入待查询的会话基础信息(ZIMConversationBaseInfo)列表,一次性获取多个指定会话的详细信息(包括会话名称、会话未读数、会话通知状态等),无需多次调用 queryConversation。
- 单次最多可查询 100 个会话,登录后可用,登出后不可用。
- 查询成功的会话通过回调中的
conversations返回,查询失败的会话基础信息通过errorConversationInfos返回,开发者可据此进行重试或降级处理。
// 构造待查询的会话基础信息列表
std::vector<zim::ZIMConversationBaseInfo> conversationInfos;
zim::ZIMConversationBaseInfo info;
info.conversationID = "conv_id";
info.conversationType = zim::ZIMConversationType::ZIM_CONVERSATION_TYPE_PEER;
conversationInfos.push_back(info);
// 批量查询会话信息
zim_->queryConversations(
conversationInfos,
[=](const std::vector<std::shared_ptr<zim::ZIMConversation>> &conversations,
const std::vector<zim::ZIMConversationBaseInfo> &errorConversationInfos,
const zim::ZIMError &errorInfo) {
// 批量查询会话操作的结果回调
if (errorInfo.code == zim::ZIMErrorCode::ZIM_ERROR_CODE_SUCCESS) {
// conversations 为查询成功的会话列表
} else {
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
}
// errorConversationInfos 为查询失败的会话基础信息列表,可据此重试或降级处理
});