`
shendixiong
  • 浏览: 399454 次
  • 性别: 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 

相关推荐

    openfire消息回执插件

    《Openfire消息回执插件解析》 Openfire是一款开源的即时通讯服务器,它基于XMPP(可扩展消息处理现场协议)标准,提供强大的实时通信功能。在Openfire的生态系统中,开发插件是增强其功能的有效方式。本文将深入...

    openfire防消息丢失插件

    openfire服务器在进行消息转发时,如果接收者网络断开,服务器检测不到接收者已下线,转发后消息会丢失,为解决消息丢失,有四种解决方案: 1.发送之前“发送心跳” 2.发送之前“发自定义结构” 3.客服端收到消息...

    XMPP协议之消息回执解决方案.docx

    ### XMPP协议之消息回执解决方案 #### 一、引言 在即时通信领域中,消息的可靠传输是一项至关重要的任务。特别是在网络条件不佳的情况下,如何确保消息能够准确无误地送达目标用户成为了一个需要解决的技术难题。...

    openfire防丢包插件及源码

    在客户端设置回执后,当服务器接收到消息时会向发送方返回一个确认消息,这样可以确保消息已被接收,从而避免了因未确认而导致的重发。 在Openfire数据库层面,插件对数据库表`ofoffline`进行了扩展,新增了一个名...

    基于openfire,XMPPFramework实现的iOS聊天应用

    在工程的后续开发中,可以考虑增加更多功能,如离线消息存储与同步、消息已读回执、文件传输等。同时,为了提升用户体验,还可以优化网络连接稳定性,实现更高效的推送通知服务,以及设计友好的用户界面。 总结,...

    Android使用XMPP协议、OpenFire服务器和Smack类库实现即时通信

    在实际项目中,为了提供更好的用户体验,还需要考虑网络连接的断开重连、消息的存储和回执、离线消息的处理等细节。同时,考虑到Android的特性,如后台服务限制、电量优化等,可能需要采用Service或JobScheduler等...

    androidpn服务器推送

    4. **消息回执**:描述中提到了消息回执,这意味着服务器需要知道客户端是否已经成功接收到推送的消息。这通常通过客户端在接收到消息后向服务器发送一个确认回执来实现。服务器收到回执后,可以标记消息为已读,...

    iOS 实现的即时聊天

    11. **用户体验优化**:在iOS应用中,为了提供良好的用户体验,需要考虑消息推送(APNs)、离线消息、消息回执、消息撤回等功能的实现。 在"XMPPdemo"这个项目中,开发者可能已经实现了以上所述的部分或全部功能。...

    asmack通讯

    6. **多设备同步**:支持多设备同时在线,消息推送和回执。 ### 二、XMPP协议详解 XMPP是一种基于XML的即时通讯协议,它定义了客户端和服务器之间的通信格式。核心组件包括: 1. **Jabber-ID (JID)**:每个XMPP...

    Android 仿QQ客户端及服务端源码

    - **消息回执**:发送消息已读、未读状态,确保信息传递的准确性。 - **群聊**:创建群组,支持多人同时在线聊天。 7. **性能优化**: - **数据缓存**:本地缓存常用数据,减少网络请求。 - **内存管理**:避免...

    WeChat:基于XMPP模仿微信App进行IM(即时聊天)开发,并适配iPad、iOS7。(暂停开发,有空再讲……)

    3. **实时消息传递**:使用XMPP框架的核心功能,实现实时文本、图片、文件等消息的发送与接收,同时支持消息撤回、已读回执等功能。 4. **群组聊天**:类似微信的微信群,可以创建和加入多人群聊,实现多用户间的...

Global site tag (gtag.js) - Google Analytics