查询会话
2026-11-06
功能简介
ZIM 支持通过指定会话 ID 查询单个会话的详细信息,也支持批量查询多个指定会话的详细信息。
查询单个会话
用户登录后,可以调用 queryConversation 接口,指定会话 ID 及会话类型,获取对应会话的详细信息(包括会话名称、会话未读数、会话通知状态等)。
String conversationID = "convId";
ZIMConversationType type = ZIMConversationType.PEER;
// 查询会话信息
zim.queryConversation(conversationID,type, new ZIMConversationQueriedCallback() {
@Override
public void onConversationQueried(ZIMConversation conversation, ZIMError errorInfo) {
// 查询会话的信息。
}
});String conversationID = "convId";
ZIMConversationType type = ZIMConversationType.PEER;
// 查询会话信息
zim.queryConversation(conversationID,type, new ZIMConversationQueriedCallback() {
@Override
public void onConversationQueried(ZIMConversation conversation, ZIMError errorInfo) {
// 查询会话的信息。
}
});// 查询会话信息
[[ZIM getInstance] queryConversation:@"targetConversationID" conversationType:ZIMConversationTypePeer callback:^(ZIMConversation * _Nonnull conversation, ZIMError * _Nonnull errorInfo) {
// 查询会话操作的结果回调
if (errorInfo.code == ZIMErrorCodeSuccessS) {
} else {
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
}
}];// 查询会话信息
[[ZIM getInstance] queryConversation:@"targetConversationID" conversationType:ZIMConversationTypePeer callback:^(ZIMConversation * _Nonnull conversation, ZIMError * _Nonnull errorInfo) {
// 查询会话操作的结果回调
if (errorInfo.code == ZIMErrorCodeSuccessS) {
} else {
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
}
}];// 查询会话信息
const conversationID = "xxx";
const conversationType = 0;
// 拉取会话列表
zim.queryConversation(conversationID, conversationType)
.then((res: ZIMConversationQueriedResult) => {
// 查询成功,开发者需要保存和维护数组内的会话对象
})
.catch((err: ZIMError) => {
// 查询失败
})// 查询会话信息
const conversationID = "xxx";
const conversationType = 0;
// 拉取会话列表
zim.queryConversation(conversationID, conversationType)
.then((res: ZIMConversationQueriedResult) => {
// 查询成功,开发者需要保存和维护数组内的会话对象
})
.catch((err: ZIMError) => {
// 查询失败
})// 查询会话信息
ZIM.getInstance().queryConversation("conversationID", ZIMConversationType.peer).then((value){
// 查询会话操作的结果回调
}).catchError((onError){
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
});// 查询会话信息
ZIM.getInstance().queryConversation("conversationID", ZIMConversationType.peer).then((value){
// 查询会话操作的结果回调
}).catchError((onError){
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
});// 查询会话信息
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 官网错误码文档排查错误原因
}
});// 查询会话信息
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 官网错误码文档排查错误原因
}
});// 查询会话信息
ZIM.GetInstance().QueryConversation(
"conv_id", ZIMConversationType.Peer,
[=](ZIMConversation conv, ZIMError errorInfo) {
// 查询会话操作的结果回调
if (errorInfo.code == ZIMErrorCode.Success) {
} else {
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
}
});// 查询会话信息
ZIM.GetInstance().QueryConversation(
"conv_id", ZIMConversationType.Peer,
[=](ZIMConversation conv, ZIMError errorInfo) {
// 查询会话操作的结果回调
if (errorInfo.code == ZIMErrorCode.Success) {
} else {
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
}
});批量查询会话
自 3.3.0 版本起,ZIM 支持批量查询会话。
用户登录后,可以调用 queryConversations 接口,传入待查询的会话基础信息(ZIMConversationBaseInfo)列表,一次性获取多个指定会话的详细信息(包括会话名称、会话未读数、会话通知状态等),无需多次调用 queryConversation。
- 单次最多可查询 100 个会话,登录后可用,登出后不可用。
- 查询成功的会话通过回调中的
conversations返回,查询失败的会话基础信息通过errorConversationInfos返回,开发者可据此进行重试或降级处理。
// 构造待查询的会话基础信息列表
ArrayList<ZIMConversationBaseInfo> conversationInfos = new ArrayList<>();
ZIMConversationBaseInfo info = new ZIMConversationBaseInfo();
info.conversationID = "convId";
info.conversationType = ZIMConversationType.PEER;
conversationInfos.add(info);
// 批量查询会话信息
zim.queryConversations(conversationInfos, new ZIMConversationsQueriedCallback() {
@Override
public void onConversationsQueried(ArrayList<ZIMConversation> conversations, ArrayList<ZIMConversationBaseInfo> errorConversationInfos, ZIMError errorInfo) {
// conversations 为查询成功的会话列表
// errorConversationInfos 为查询失败的会话基础信息列表,可据此重试或降级处理
}
});// 构造待查询的会话基础信息列表
ArrayList<ZIMConversationBaseInfo> conversationInfos = new ArrayList<>();
ZIMConversationBaseInfo info = new ZIMConversationBaseInfo();
info.conversationID = "convId";
info.conversationType = ZIMConversationType.PEER;
conversationInfos.add(info);
// 批量查询会话信息
zim.queryConversations(conversationInfos, new ZIMConversationsQueriedCallback() {
@Override
public void onConversationsQueried(ArrayList<ZIMConversation> conversations, ArrayList<ZIMConversationBaseInfo> errorConversationInfos, ZIMError errorInfo) {
// conversations 为查询成功的会话列表
// errorConversationInfos 为查询失败的会话基础信息列表,可据此重试或降级处理
}
});// 构造待查询的会话基础信息列表
ZIMConversationBaseInfo *info = [[ZIMConversationBaseInfo alloc] init];
info.conversationID = @"targetConversationID";
info.conversationType = ZIMConversationTypePeer;
// 批量查询会话信息
[[ZIM getInstance] queryConversationsByConversationInfos:@[info] callback:^(NSArray<ZIMConversation *> * _Nonnull conversations, NSArray<ZIMConversationBaseInfo *> * _Nonnull errorConversationInfos, ZIMError * _Nonnull errorInfo) {
// 批量查询会话操作的结果回调
if (errorInfo.code == ZIMErrorCodeSuccess) {
// conversations 为查询成功的会话列表
} else {
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
}
// errorConversationInfos 为查询失败的会话基础信息列表,可据此重试或降级处理
}];// 构造待查询的会话基础信息列表
ZIMConversationBaseInfo *info = [[ZIMConversationBaseInfo alloc] init];
info.conversationID = @"targetConversationID";
info.conversationType = ZIMConversationTypePeer;
// 批量查询会话信息
[[ZIM getInstance] queryConversationsByConversationInfos:@[info] callback:^(NSArray<ZIMConversation *> * _Nonnull conversations, NSArray<ZIMConversationBaseInfo *> * _Nonnull errorConversationInfos, ZIMError * _Nonnull errorInfo) {
// 批量查询会话操作的结果回调
if (errorInfo.code == ZIMErrorCodeSuccess) {
// conversations 为查询成功的会话列表
} else {
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
}
// errorConversationInfos 为查询失败的会话基础信息列表,可据此重试或降级处理
}];// 构造待查询的会话基础信息列表
const conversationInfos: ZIMConversationBaseInfo[] = [
{ conversationID: 'xxx', conversationType: 0 }
];
// 批量查询会话信息
zim.queryConversations(conversationInfos)
.then((res: ZIMConversationsQueriedResult) => {
// 查询成功,开发者需要保存和维护 res.conversations 数组内查询成功的会话对象
// res.errorConversationInfos 为查询失败的会话基础信息数组,可据此重试或降级处理
})
.catch((err: ZIMError) => {
// 查询失败
})// 构造待查询的会话基础信息列表
const conversationInfos: ZIMConversationBaseInfo[] = [
{ conversationID: 'xxx', conversationType: 0 }
];
// 批量查询会话信息
zim.queryConversations(conversationInfos)
.then((res: ZIMConversationsQueriedResult) => {
// 查询成功,开发者需要保存和维护 res.conversations 数组内查询成功的会话对象
// res.errorConversationInfos 为查询失败的会话基础信息数组,可据此重试或降级处理
})
.catch((err: ZIMError) => {
// 查询失败
})// 构造待查询的会话基础信息列表
ZIMConversationBaseInfo info = ZIMConversationBaseInfo();
info.conversationID = "conversationID";
info.conversationType = ZIMConversationType.peer;
// 批量查询会话信息
ZIM.getInstance().queryConversations([info]).then((value){
// 批量查询会话操作的结果回调
// value.conversations 为查询成功的会话列表
// value.errorConversationInfos 为查询失败的会话基础信息列表,可据此重试或降级处理
}).catchError((onError){
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
});// 构造待查询的会话基础信息列表
ZIMConversationBaseInfo info = ZIMConversationBaseInfo();
info.conversationID = "conversationID";
info.conversationType = ZIMConversationType.peer;
// 批量查询会话信息
ZIM.getInstance().queryConversations([info]).then((value){
// 批量查询会话操作的结果回调
// value.conversations 为查询成功的会话列表
// value.errorConversationInfos 为查询失败的会话基础信息列表,可据此重试或降级处理
}).catchError((onError){
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
});// 构造待查询的会话基础信息列表
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 为查询失败的会话基础信息列表,可据此重试或降级处理
});// 构造待查询的会话基础信息列表
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 为查询失败的会话基础信息列表,可据此重试或降级处理
});