无法在XMPP中收到邮件投递收据

时间:2014-09-17 10:08:47

标签: ios xmpp xmppframework

我是XMPP的新手。我正在为我的聊天应用程序使用XMPP和Open fire服务器。该应用程序正在运行,但现在我想收到邮件发送收据。我使用以下代码,  在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];

但我无法收到邮件投递。我怎么才能得到它?有人知道吗?

1 个答案:

答案 0 :(得分:1)

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