Need assistance regarding using the xep-0184

偶尔善良 提交于 2019-12-07 18:06:53

问题


I am using robbiehanson/XMPPFramework for my current project, I can send and receive messages to people in my roster, but now I have to implement message delivery status. I know the xep its 0184 and I have also included in my project, I am having difficulty utilizing it.

I read in xep-0184 document that request element must also included in message, so here is my code:

#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>

Please help how do i get a message delivery status.


回答1:


I think you forgot to add the module itself. When you want to add an XMPPModule like XMPPMessageDeliveryReceipts you should add it to the XMPPStream object first, then you can use its functions.

Do the following:

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

[xmppMessageDeliveryRecipts activate:xmppStream];

When xmppStream is your main XMPPFramework object.

Hope i helped.



来源:https://stackoverflow.com/questions/11590975/need-assistance-regarding-using-the-xep-0184

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!