`
shendixiong
  • 浏览: 393069 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

openfire 消息回执

阅读更多

参考了: http://blog.csdn.net/t8500071/article/details/13094933

我底层使用的是smack ,最后根据资料使用到了android的jar

 

自动回执代码:

// add delivery receipts  
pm.addExtensionProvider(DeliveryReceipt.ELEMENT, DeliveryReceipt.NAMESPACE,  
			        new DeliveryReceipt.Provider());  
pm.addExtensionProvider(DeliveryReceiptRequest.ELEMENT, DeliveryReceipt.NAMESPACE,  
			        new DeliveryReceiptRequest.Provider()); 			
xmpp.login(user.getUserAccount(), user.getPassword());
DeliveryReceiptManager.getInstanceFor(xmpp).enableAutoReceipts();

 关于内容在上面有参考网站上有解释。如果只是简单的设置DeliveryReceiptManager.getInstanceFor(xmpp).enableAutoReceipts();(自动回执)

是无法成功,因为它们共用一个Provider

所以要加上:

ProviderManager pm = ProviderManager.getInstance();  
			// add delivery receipts  
pm.addExtensionProvider(DeliveryReceipt.ELEMENT, DeliveryReceipt.NAMESPACE,  
			        new DeliveryReceipt.Provider());  
pm.addExtensionProvider(DeliveryReceiptRequest.ELEMENT, DeliveryReceipt.NAMESPACE,  
			        new DeliveryReceiptRequest.Provider()); 

 

 

设置消息回执请求为:

DeliveryReceiptManager.addDeliveryReceiptRequest(Message);

 就是在发送消息之前需要添加此行代码,简单的说就是发送回执请求

 

需要使用到关键jar在附件中

分享到:
评论
6 楼 a1334480360 2015-10-28  
楼主你好,我用这种方式,回执消息里面并没有携带接收到消息的ID:
1、接收到的消息:
<message id="FIN6s-4" to="769922@kaojin-im" from="769913@kaojin-im/Smack" type="chat"><body>嗨1</body><thread>L4DOh0</thread><request xmlns='urn:xmpp:receipts'/><request xmlns='urn:xmpp:receipts'/></message>
2、回执消息:
<message id="eI4ik-8" to="769913@kaojin-im/Smack" from="769922@kaojin-im/Smack"><thread>S2QoM0</thread><received xmlns="urn:xmpp:receipts"></received></message>
不知道是怎么回事
5 楼 lsc123 2014-11-26  
shendixiong 写道
1034174146 写道
按照这样子 消息回执是不关openfire的事   那在客户端中  发送者怎么获取这条消息是否有没回执  能不能加个QQ详细谈谈 1034174146 


android手机端的可以通过asmark 判断的!有现成的代码

我想问下博主是否确定在android的上实现了?
4 楼 lsc123 2014-11-21  
asmack里没这个包 org.jivesoftware.smackx.receipts;你怎么弄的?
3 楼 shendixiong 2014-11-03  
1034174146 写道
按照这样子 消息回执是不关openfire的事   那在客户端中  发送者怎么获取这条消息是否有没回执  能不能加个QQ详细谈谈 1034174146 


android手机端的可以通过asmark 判断的!有现成的代码
2 楼 shendixiong 2014-10-17  
1034174146 写道
按照这样子 消息回执是不关openfire的事   那在客户端中  发送者怎么获取这条消息是否有没回执  能不能加个QQ详细谈谈 1034174146 


在代码中,添加回执请求会自动回执就可以。

当用户接收到消息会有特定的报文,如下:

    <message  
    from='test@dison/smack'  
    id='messageid1'  
    to='test1@dison/smack'>  
    <body>test</body>  
    <request xmlns='urn:xmpp:receipts'/>  
    </message>  


<message  
from='test1@dison/smack'  
id='messageid2'  
to='test@dison/smack'>  
<received xmlns='urn:xmpp:receipts' id='messageid1'/>  
</message> 



前者是回执请求,后者是回执!

其中Message中的ID 为 messageid1 就是消息的回执
1 楼 1034174146 2014-10-06  
按照这样子 消息回执是不关openfire的事   那在客户端中  发送者怎么获取这条消息是否有没回执  能不能加个QQ详细谈谈 1034174146 

相关推荐

Global site tag (gtag.js) - Google Analytics