iOS端初次建立会话,获取不到会话记录
场景描述
您好,现有业务场景如下:
A向B发起一个咨询,A通过一个接口获取B的username和key,这个接口同时会判断用户B的状态,如果没有注册就注册,注册过了就登录,然后接口创建会话成功后会发出几个打招呼语,同时将B的username和key返回给A:
/// 此接口会判断并创建用户B,成功服务端后向B发送若干条自定义消息,并返回B的userName和appKey
[RequestObj postWithUrl:JoinURL(@"im/getUser/nameAndKey") params:params success:^(id respondseObj) {
NSInteger code = [[self parsingValueFormObj:respondseObj forKeyPath:@"code"] integerValue];
if (SUCCESSCODE == code) {
NSDictionary * dic = [self parsingValueFormObj:respondseObj forKeyPath:@"data"];
if (dic && [datas isKindOfClass:NSDictionary.class]) {
NSString * userName = dic[@"userName"];
NSString * appKey = dic[@"appKey"];
callBack(fromId, appKey, respondseObj, nil);
} else {
callBack(nil, nil, respondseObj, nil);
}
} else {
callBack(nil, nil, respondseObj, nil);
}
} failure:^(NSError *error) {
callBack(nil, nil, nil, error);
} isShowHud:true];
当A接受到接口返回B的userName和appKey时,创建并进入会话:
[JMSGConversation createSingleConversationWithUsername: userName appKey:appKey completionHandler:^(JMSGConversation * resultObject, NSError *error) {
if (error) {
[HUD flashError:@"创建会话失败!"];
return;
} else {
ChatConversationController * vc = [[ChatConversationController alloc] init];
vc.conversation = conversation;
[curVc.navigationController pushViewController:vc animated:YES];
}
}];
遇到的问题
当进入A同B的会话页面时,有时候获取不到服务端发的几条打招呼信息,同时A向B发送的消息,B能接收到消息,但是在消息记录里面也获取不到已发送的消息,我调用的是
[conversation allMessages]
这个方法。在会话列表页面,也能展示我最后发出的消息,但是进入到会话页面就获取不掉刚才发送的消息历史记录。当重启App时,就会恢复正常。是什么原因呢?谢谢!
集成信息
JMessage SDK version:3.9.1, build:241
JCore Lib Version:2.4.0, build:146