美文网首页
(转载)XMPPFrameWork IOS 开发(七)消息回执

(转载)XMPPFrameWork IOS 开发(七)消息回执

作者: 斯文_7 | 来源:发表于2016-11-22 18:54 被阅读146次
原始地址:XMPPFrameWork IOS 开发(七)消息回执
请参考:XEP-0184协议 
协议内容:

发送消息时附加回执请求
[cpp] view plain copy print?
<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>  
代码实现
[cpp] view plain copy print?
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];  

收到回执请求的消息,发送回执
[cpp] view plain copy print?
<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>  

代码实现
[cpp] view plain copy print?
- (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!");  
            }  
        }  
    }  
      
    //消息处理  
    //...  
}  

相关文章

网友评论

      本文标题:(转载)XMPPFrameWork IOS 开发(七)消息回执

      本文链接:https://www.haomeiwen.com/subject/cecmpttx.html