获取两个用户之间的XMPP客户端聊天记录

时间:2015-08-14 06:12:11

标签: ios objective-c swift xmpp messenger

我使用eJabbered创建了一个XMPP Swift Messenger,但它没有保存历史记录。

我搜索了很多,可以在Stack中找到用ObjC写的答案。

例如:

- (void)loadChatHistoryWithUserName:(NSString *)userName {
    NSString *userJid = [NSString stringWithFormat:@"%@@%@",userName,self.hostName];
    NSManagedObjectContext *moc = [_xmppMsgStorage mainThreadManagedObjectContext];
    NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"XMPPMessageArchiving_Message_CoreDataObject"
                                                     inManagedObjectContext:moc];
    NSFetchRequest *request = [[NSFetchRequest alloc]init];
[request setEntity:entityDescription];
    NSError *error;
    NSString *predicateFrmt = @"bareJidStr == %@";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateFrmt, userJid];
request.predicate = predicate;
    NSArray *messages = [moc executeFetchRequest:request error:&error];
}

但我使用XMPP Swift Framework和XMPP ObjC Framework。看看这个Git:GitHub

如何在Swift中使用这些代码段来获取聊天记录?

1 个答案:

答案 0 :(得分:0)

如果您没有在本地保存历史记录(即某种缓存),那么您应该查看记录聊天记录的服务器插件,并允许您在连接和登录时检索它们(并进入相关房间)等等,如果我的记忆正确地为我服务,ejabbered没有内置(或者付费版本可以),根据我的经验Prosody IM server有该插件,它很容易设置。

之后,确保您的客户端检索历史记录(使用监听器等)

希望这有帮助。