在XMPP中无法获得邮件传递收据

我是XMPP的新手。 我正在为我的聊天应用程序使用XMPP和开放式消息服务器。 应用程序正在工作,但现在我想要收到消息传递收据。 我在setupStream使用下面的代码:

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

sendMessage

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

但是我收不到信息传递收据。 我怎么才能得到它? 有人知道吗?

您已经收到送货回执回复,但XMPPMessageDeliveryReceipts模块不会自动处理。 您需要存储所有传入和传出的消息(检查XMPPMessageArchiving模块,它可以将消息保存在XMPPMessageArchiving_CoreDataStorage实例中),检查消息hasReceiptResponse (在XMPPMessage+XEP_0184类别中定义),在收到响应中查找消息ID并将相应的消息标记为“交付”在消息存储(您可能需要添加新的属性,如“传递”到XMPPMessageArchivingCoreDataObject如果您将使用此模块,或者使您自己的存储机制)