如何使用XMPP框架获取消息的分发状态

我正在使用XMPP框架在用户之间聊天,聊天正在发生完美。现在我需要显示消息完全交付给两个设备,比如(What's app messenger)。 我没有得到任何教程要遵循。 下面的代码代表我们发送消息给其他用户。

//Sending the message to the other user NSXMLElement *body = [NSXMLElement elementWithName:@"body"]; [body setStringValue:txtChat.text]; NSXMLElement *message = [NSXMLElement elementWithName:@"message"]; [message addAttributeWithName:@"type" stringValue:@"chat"]; [message addAttributeWithName:@"to" stringValue:self.userjid]; [message addChild:body]; [[APPDELEGATE xmppStream] sendElement:message]; 

当通过使用XMPP框架重新传递消息时,我通过使用下面的代码获取数据

 - (void)loadarchivemsg { XMPPMessageArchivingCoreDataStorage *storage = [XMPPMessageArchivingCoreDataStorage sharedInstance]; NSManagedObjectContext *moc = [storage mainThreadManagedObjectContext]; NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"XMPPMessageArchiving_Message_CoreDataObject" inManagedObjectContext:moc]; NSFetchRequest *request = [[NSFetchRequest alloc]init]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(bareJidStr like %@) && (streamBareJidStr like %@)", self.userjid,[[NSUserDefaults standardUserDefaults] stringForKey:@"kXMPPmyJID"]]; request.predicate = predicate; NSLog(@"%@",[[NSUserDefaults standardUserDefaults] stringForKey:@"kXMPPmyJID"]); [request setEntity:entityDescription]; NSError *error; NSArray *messages_arc = [moc executeFetchRequest:request error:&error]; [self print:[[NSMutableArray alloc]initWithArray:messages_arc]]; } - (void)print:(NSMutableArray*)messages_arc{ @autoreleasepool { for (XMPPMessageArchiving_Message_CoreDataObject *message in messages_arc) { NSXMLElement *element = [[NSXMLElement alloc] initWithXMLString:message.messageStr error:nil]; XMPPMessage *message12=[[XMPPMessage alloc]init]; message12 = [message message]; } } 

在这个为什么我发送邮件和检索邮件,你能帮我如何检索邮件的交付状态。 等待你的宝贵答案。

@Romance你需要在connect方法中添加下面的代码

  XMPPMessageDeliveryReceipts* xmppMessageDeliveryRecipts = [[XMPPMessageDeliveryReceipts alloc] initWithDispatchQueue:dispatch_get_main_queue()]; xmppMessageDeliveryRecipts.autoSendMessageDeliveryReceipts = YES; xmppMessageDeliveryRecipts.autoSendMessageDeliveryRequests = YES; [xmppMessageDeliveryRecipts activate:self.xmppStream]; 

请记住在发送消息时添加这些行

 NSString *messageID=[self.xmppStream generateUUID]; NSXMLElement *message = [NSXMLElement elementWithName:@"message"]; [message addAttributeWithName:@"id" stringValue:messageID]; [message addAttributeWithName:@"type" stringValue:@"chat"]; [message addAttributeWithName:@"to" stringValue:[NSString stringWithFormat:@"senderJabberID_Here"]]; [message addChild:body]; 

希望这个帮助你:)