gpt4 book ai didi

ios - 无法在 XMPP 中获取消息传递回执

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:20:41 36 4
gpt4 key购买 nike

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

但我无法收到消息送达回执。我怎么才能得到它?有人知道吗?

最佳答案

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

关于ios - 无法在 XMPP 中获取消息传递回执,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25887754/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com