iOS XMPP之群组聊天

好友聊天都是通过一个代理来完成,不管收消息还是发消息都要通过这个代理
群组聊天和好友聊天的区别就是jid!!!!!

// 上下文
    NSManagedObjectContext *context = [WCXMPPTool sharedWCXMPPTool].msgStorage.mainThreadManagedObjectContext;

 // 请求对象
 NSFetchRequest *request = [NSFetchRequest
 fetchRequestWithEntityName:@"XMPPMessageArchiving_Message_CoreDataObject"];

 // 1.当前登录用户的JID的消息
 // 2.好友的Jid的消息
NSPredicate *pre = [NSPredicate 
predicateWithFormat:@"streamBareJidStr = %@ AND bareJidStr =
%@",[WCUserInfo sharedWCUserInfo].jid,self.roomJID.bare];
request.predicate = pre; 

 // 时间升序
 NSSortDescriptor *timeSort = [NSSortDescriptor sortDescriptorWithKey:@"timestamp" ascending:YES];  request.sortDescriptors = @[timeSort];

 // 查询
 _resultsContr = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:context sectionNameKeyPath:nil cacheName:nil];
NSError *err = nil;

// 代理
_resultsContr.delegate = self;
[_resultsContr performFetch:&err];

//执行代理 /当收到消息和自己发送消息的时候会执行这个代理 / ResultController的代理
-(void)controllerDidChangeContent:(NSFetchedResultsController
 *)controller{ 
     controller就是我们聊天的数据
 }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容