我使用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中使用这些代码段来获取聊天记录?
答案 0 :(得分:0)
如果您没有在本地保存历史记录(即某种缓存),那么您应该查看记录聊天记录的服务器插件,并允许您在连接和登录时检索它们(并进入相关房间)等等,如果我的记忆正确地为我服务,ejabbered没有内置(或者付费版本可以),根据我的经验Prosody IM server有该插件,它很容易设置。
之后,确保您的客户端检索历史记录(使用监听器等)
希望这有帮助。