XMPPFrameWork IOS 开发(七)消息回执

原始地址: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!");
			}
		}
	}
	
	//消息处理
	//...
}


  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值