iOS端初次建立会话,获取不到会话记录

用户7455878
2021-08-11 01:45 42 1

场景描述

您好,现有业务场景如下:
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

1个回答

热门排序
gptbots-widget