XMPPFrameWork IOS 开发(七)消息回执

来源:互联网 发布:淘宝现金红包哪里抢 编辑:程序博客网 时间:2024/05/19 03:20

原始地址:XMPPFrameWork IOS 开发(七)消息回执

请参考:XEP-0184协议 

协议内容:


发送消息时附加回执请求

<message    from='northumberland@shakespeare.lit/westminster'    id='richard2-4.1.247'    to='kingrichard@royalty.england.lit/throne'>  <body>My lord, dispatch; read o'er these articles.</body>  <request xmlns='urn:xmpp:receipts'/></message>

代码实现

NSString *siID = [XMPPStream generateUUID];//发送消息XMPPMessage *message = [XMPPMessage messageWithType:@"chat" to:jid elementID:siID];NSXMLElement *receipt = [NSXMLElement elementWithName:@"request" xmlns:@"urn:xmpp:receipts"];[message addChild:receipt];[message addBody:@"测试"];[self.xmppStream sendElement:message];


收到回执请求的消息,发送回执

<message    from='kingrichard@royalty.england.lit/throne'    id='bi29sg183b4v'    to='northumberland@shakespeare.lit/westminster'>  <received xmlns='urn:xmpp:receipts' id='richard2-4.1.247'/></message>

代码实现

- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message{//回执判断NSXMLElement *request = [message elementForName:@"request"];if (request){if ([request.xmlns isEqualToString:@"urn:xmpp:receipts"])//消息回执{//组装消息回执XMPPMessage *msg = [XMPPMessage messageWithType:[message attributeStringValueForName:@"type"] to:message.from elementID:[message attributeStringValueForName:@"id"]];NSXMLElement *recieved = [NSXMLElement elementWithName:@"received" xmlns:@"urn:xmpp:receipts"];[msg addChild:recieved];//发送回执[self.xmppStream sendElement:msg];}}else{NSXMLElement *received = [message elementForName:@"received"];if (received){if ([received.xmlns isEqualToString:@"urn:xmpp:receipts"])//消息回执{//发送成功NSLog(@"message send success!");}}}//消息处理//...}