2015-05-15 4 views
1

Я не могу получить историю из открытого огня. Я использую XMPP FrameworkОбщайтесь в чате Общайтесь в чате

Как получить историю чата из открытого архива и распечатать данные истории в nslog?

+0

возможно дубликат [Смак API - читать чат Histroy с Openfire сервера] (http://stackoverflow.com/questions/6635034/smack-api-read-chat-histroy-from-openfire-server) – legoscia

+0

Привет, Chiristian Я могу видеть всю историю в архиве сервера, Мой вопрос - как получить эти детали программным путем для списка в таблице – Karthik

ответ

1

Вам необходимо включить опцию openfire, чтобы получить историю чата. Вход в openfire, перейдите в групповой чат, затем перейдите в настройки группового чата, затем перейдите к настройкам истории, а затем выберите отображение истории истории чата.

+0

Я включил возможность просмотра истории чата. Но мой вопрос в openfire сам я могу увидеть историю чата и историю одного чата Где я должен посмотреть Пожалуйста, дайте мне знать – Karthik

+0

вы хотите увидеть историю чата в openfire? или в приложении? –

+1

Добавить Monitoring Service в openfire, тогда вы сможете увидеть историю сообщений –

1

В группе Присоединиться к xmpp вам нужно написать ниже код для сообщения магазина в базе данных ядра xmpp.

storage = [XMPPMessageArchivingCoreDataStorage sharedInstance]; 
moc = [storage mainThreadManagedObjectContext]; 
XMPPMessageArchiving *xmppMessageArchivingModule = [[XMPPMessageArchiving alloc] initWithMessageArchivingStorage:storage]; 
[xmppMessageArchivingModule setClientSideMessageArchivingOnly:YES]; 
[xmppMessageArchivingModule activate:xmppStream]; 
[xmppMessageArchivingModule addDelegate:self delegateQueue:dispatch_get_main_queue()]; 

после этого, когда вы входите в определенной группе вы должны получить историю из основных XMPP базы данных, используя ниже код: -

XMPPMessageArchivingCoreDataStorage *_xmppMsgStorage = [XMPPMessageArchivingCoreDataStorage sharedInstance]; 
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, [NSString stringWithFormat:@"%@%@",GroupName,GROUP_CHAT_DOMAIN]]; 
request.predicate = predicate; 
NSArray *messages = [moc executeFetchRequest:request error:&error]; 
Смежные вопросы