一种基于xmpp的可靠消息推送方法_2

文档序号:9238138阅读:来源:国知局
后,发送方A按照XMPP 协议的要求将消息体封装到Message对象的Body中,得到如下所示的body字段:
[0029]
[0030] 其中Textl、Text2是对附件描述的文本信息,Text3则是整条消息的文本信息; <res></res>标记附件信息,包括附件类型和附件名字。
[0031] 该条消息首先存储在发送方A的Sqlite数据库中,之后该消息发送给中间件服 务器,同时,发送方连接HTTP服务器,并开始上传两个附件。中间件服务器收到该消息后, 存入数据库,并建立完整性标识,此处有两个文件,则完整性标识初始化为"〇〇",同时,在 HTTP服务器也维持这样的完整性标识。在HTTP服务器上,任何一个文件上传成功,则相应 的标识位由"0"变为" 1",并及时发送变更消息给中间件服务器,修改相应的标识位,等到 HTTP服务器上的标识位全部为"1"时,HTTP服务器发送文件上传成功的消息给中间件服务 器,同时,发送每个文件的URL地址给中间件服务器。其中URL地址的格式为:
[00°01
[0033] 其中yy-mm、dd、hh是文件上传日期的年月、日、时,file-name是文件名字。
[0034] 中间件服务器收到该成功消息和URL地址后,与原本存在数据库中的消息整合, 得到如下所示的body字段: 「00351
[0036] 消息整合结束后,中间件服务器发送回执信息给发送方A,发送方A收到回执包删 除之前存在数据库中的消息。接下来,中间件监听接收方B是否在线,如果在线,则将整合 后的消息加入发送队列中,并发送给接收方B,接收方B收到消息后返回回执包给中间件服 务器,中间件服务器接收到回执包后,将整合后的消息写入服务器的消息历史表中,并删除 数据库中的记录。
[0037] 之后,接收方B可以通过解析整合后的消息,连接HTTP服务器下载相应的附件或 者处理其他任务。
[0038] 本发明一种基于XMPP协议的可靠消息推送方法,用消息列队缓存的可靠信息推 送方法来保证在客户终端联网状况不稳定条件下,所有消息最终被可靠地推送给目的终 端。该方法采用XMPP协议对来自发送方(智能终端或应用服务器)的消息进行封装,利用 中文Openfire服务器作为中间件服务器来缓存消息,并在监听到接收方(服务器、智能终 端)联网稳定后,由中间件服务器将缓存的消息推送至接收方。在发送方与中间件服务器 发送消息的过程中,通过验证有效连接身份、推送消息、接收回执包等握手过程来确保消息 已经安全推送至中间件服务器;在中间件服务器与接收方通信的过程中,通过验证接收方 是否在线后将待发送消息加入消息队列、推送消息、得到回执包等握手过程来确保消息可 靠地被接收方收到。
[0039] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的 保护范围应该以权利要求书所限定的保护范围为准。
【主权项】
1. 一种基于XMPP的可靠消息推送方法,该方法包括客户终端和通讯服务器端;其特征 在于:所述客户终端与通讯服务器端通过中间服务器建立连接进行文本消息推送,具体步 骤包括: 对于含有附件的文本消息推送方法,步骤如下: Pl :客户终端,即消息发送方先与中间件建立连接,中间件服务器通过安全传输层协议 TLS和简单认证与安全层SASL对终端进行身份验证; P2 :发送方将文字消息和附件消息,按照XMPP协议的要求进行封装,将消息体封装到 XMPP协议规定的Message元素的body节中;在消息发送前,会将该条附件消息存储在客户 终端的数据库中; P3 :发送方发送该条消息到中间件服务器,同时,发送方连接HTTP服务器,并通过终端 设备参数进行身份验证,验证通过后,上传文件到HTTP服务器,并建立完整性标识;中间件 服务器中的插件和HTTP服务器进行如下处理 : 1) 中间件服务器将该条消息存入中间件服务器数据库中,并建立文件完整性标识; 2. HTTP服务器监控文件上传情况,有文件上传成功则发送消息给openfire服务器插 件,更新文件完整性标识; 3) 附件完全上传成功后,HTTP服务器发送消息给中间服务器插件,插件监听到该消息 后将给消息的发送方发送一个回执包,发送方收到这个回执包以后将客户终端数据库中相 应的消息记录删除,表示该条消息的文本和附件分别成功到达中间件服务器和HTTP服务 器,无需再保留;与此同时,HTTP服务器也发送附件的URL路径给中间件服务器插件,插件 接收该消息后与原文本消息整合后存入中间件服务器数据库中; 4) 中间件服务器判断该条消息的接收方客户终端是否在线,如果在线则将该消息加入 中间件服务器的待发送消息队列中;中间件服务器中有线程依次发送消息队列中的消息; 如果该条消息的接收方不在线,则这条消息会保留在服务器数据库中,当该条消息的接收 方上线时,才会从数据库中调入到待发送队列中; P4、接收方整合了的消息后,会给中间件服务器发送回执包。服务器接收到该条消息对 应的回执包后,进行如下操作: 1) 将该条消息写入中间件服务器数据库的历史表中; 2) 将该条消息从中间件服务器的待发送消息队列中删除; 3) 如果中间件服务器未收到回执包,则会一直发送消息给接收方客户终端,直到收到 回应消息; P5、接收方客户终端通过解析该消息,获得文件的下载地址和下载文件; 对于不含附件的纯文本消息,基于XMPP协议的可靠消息推送方法的实现机制大体相 同,其区别在于步骤P3中,发送方不需要与HTTP服务器建立连接以及验证身份,也不需要 在中间件服务器和HTTP服务器端建立完整性标识;在执行步骤P3-3时,中间件服务器在接 收到消息发送方推送过来的消息后,直接存入数据库,并推送回执包给发送方,而不需要等 待HTTP服务器发送的文件上传成功的消息。2. 根据权利要求1所述的消息推送方法,其特征在于:在步骤P2中,将需要发送的消 息存储在客户终端数据库中,待确认中间件收到消息后才将消息数据删除。3. 根据权利要求1所述的消息推送方法,其特征在于:在步骤P3中采用http协议来 上传文件,在步骤P5中采用http协议来下载文件。4. 根据权利要求1所述的消息推送方法,其特征在于:在步骤P3-3、P4中,发送回执包 来确认消息是否推送到。5. 根据权利要求1所述的消息推送方法,其特征在于:在步骤P3-UP3-2中,采用文件 完整性标识来记录文件上传情况。
【专利摘要】本发明公开了一种基于XMPP的可靠消息推送方法,采用消息列队缓存的可靠信息推送方法来保证在客户终端联网状况不稳定条件下,所有消息最终被可靠地推送给目的终端。该方法采用XMPP协议对来自发送方的消息进行封装,利用中文0penfire服务器作为中间件服务器来缓存消息,并在监听到接收方联网稳定后,由中间件服务器将缓存的消息推送至接收方。在发送方与中间件服务器发送消息的过程中,通过验证有效连接身份、推送消息、接收回执包等握手过程来确保消息已经安全推送至中间件服务器;在中间件服务器与接收方通信的过程中,通过验证接收方是否在线后将待发送消息加入消息队列、推送消息、得到回执包等握手过程来确保消息可靠地被接收方收到。
【IPC分类】H04L29/06, H04L12/58
【公开号】CN104954348
【申请号】CN201410127518
【发明人】徐剑, 刘同新, 李敏波
【申请人】普华讯光(北京)科技有限公司
【公开日】2015年9月30日
【申请日】2014年3月31日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1