gpt4 book ai didi

objective-c - 需要有关使用 xep-0184 的帮助

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:50 25 4
gpt4 key购买 nike

我正在使用 robbiehanson/XMPPFramework对于我当前的项目,我可以向名册中的人发送和接收消息,但现在我必须实现消息传递状态。我知道 xep 是 0184,我也包含在我的项目中,但我很难使用它。

我读入了xep-0184 document该请求元素也必须包含在消息中,所以这是我的代码:

#import "XMPPMessage+XEP_0184.h"
.
.
.
NSXMLElement *body = [NSXMLElement elementWithName:@"body"];

[body setStringValue:messageStr];

NSXMLElement *request = [NSXMLElement elementWithName:@"request" xmlns:@"urn:xmpp:receipts"];

NSXMLElement *message = [NSXMLElement elementWithName:@"message"];

[message addAttributeWithName:@"type" stringValue:@"chat"];

[message addAttributeWithName:@"to" stringValue:[defaults objectForKey:@"chatWith"]];
[message addChild:body];
[message addChild:request];
.
.
.
XMPPMessage *xm = [[XMPPMessage alloc]init];
NSLog(@"..1..%d",[xm hasReceiptRequest]); // Result = 0
NSLog(@"..2..%d",[xm hasReceiptResponse]); // Result = 0
NSLog(@"..3..%@",[xm extractReceiptResponseID]); // Result = (null)
NSLog(@"..4..%@",[xm generateReceiptResponse]); // Result = <message><received xmlns="urn:xmpp:receipts"></received></message>

请帮助我如何获取消息传递状态。

最佳答案

我想你忘了添加模块本身。当你想添加一个像 XMPPMessageDeliveryReceipts 这样的 XMPPModule 时,你应该先将它添加到 XMPPStream 对象,然后你才能使用它的功能。

执行以下操作:

// Setup Message Delivery Recipts Object
XMPPMessageDeliveryReceipts* xmppMessageDeliveryRecipts = [[XMPPMessageDeliveryReceipts alloc] initWithDispatchQueue:dispatch_get_main_queue()];
xmppMessageDeliveryRecipts.autoSendMessageDeliveryReceipts = YES;
xmppMessageDeliveryRecipts.autoSendMessageDeliveryRequests = YES;

[xmppMessageDeliveryRecipts activate:xmppStream];

当 xmppStream 是您的主要 XMPPFramework 对象时。

希望我有所帮助。

关于objective-c - 需要有关使用 xep-0184 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11590975/

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