iOS:XMPP:群聊消息的消息存档 [英] iOS: XMPP: Message Archiving for Group Chat Message

查看:193
本文介绍了iOS:XMPP:群聊消息的消息存档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所有一对一聊天都以消息类型作为聊天发送。
因此,消息存档技术(如下所示)可以很好地保存/检索聊天记录。

All one-one chat is send with Message Type as Chat. Thus the Message Archiving technique (shown below) worked fine for me to save/retrieve chat history.

// Setup message archiving
xmppMessageArchivingStorage = [XMPPMessageArchivingCoreDataStorage sharedInstance];
xmppMessageArchiving = [[XMPPMessageArchiving alloc] initWithMessageArchivingStorage:xmppMessageArchivingStorage];
[xmppMessageArchiving setClientSideMessageArchivingOnly:YES];

// Activate xmpp modules
[xmppMessageArchiving   activate:xmppStream];
// Add delegate
[xmppMessageArchiving  addDelegate:self delegateQueue:dispatch_get_main_queue()];






但是对于群聊,发送的消息类型是groupchat
这不会被XMPPMessageArchivingCoreDataStorage存档


However for Group Chat, the message type sent is "groupchat" This will not be archived by the XMPPMessageArchivingCoreDataStorage

有人可以指导我如何可以实现群聊消息的消息存档。

Can someone please guide me as to how I can achieve the Message Archiving for Group Chat Message.

推荐答案

您可以轻松地从xmpp核心数据库获取存档消息。使用下面的代码。

You can easily get archive messages from xmpp core database. Use Below code.

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];
//[request setFetchLimit:20];

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];

这篇关于iOS:XMPP:群聊消息的消息存档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆