[发明专利]一种基于XMPP协议的即时通讯方法及系统在审
申请号: | 201510477679.8 | 申请日: | 2015-08-06 |
公开(公告)号: | CN105119810A | 公开(公告)日: | 2015-12-02 |
发明(设计)人: | 李玉福 | 申请(专利权)人: | 北京农信互联科技有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58 |
代理公司: | 北京智为时代知识产权代理事务所(普通合伙) 11498 | 代理人: | 王加岭;杨静 |
地址: | 100081 北京市海淀区中*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 xmpp 协议 即时通讯 方法 系统 | ||
技术领域
本发明属于通讯和计算机的技术领域,具体地涉及一种基于XMPP协议的即时通讯方法,以及基于XMPP协议的即时通讯系统。
背景技术
XMPP(ExtensibleMessagingandPresenceProtocol,可扩展消息处理现场协议)是基于XML(ExtensibleMarkupLanguage,可扩展标记语言)的协议,它用于IM(InternetMessage,即时消息)以及在线现场探测。它促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使这些因特网用户的操作系统和浏览器不同。
XMPP协议是自由、开放、公开的,并且易于了解。而且在客户端、服务器、组件、源码库等方面,都已经各自有多种实现。XMPP的技术规格已被定义在RFC3920及RFC3921。任何IM供应商在遵循XMPP协议下,都可与GoogleTalk实现连接。
第一个Jabber(现在称为XMPP)技术是JeremieMiller在1998年开发的,现在已经相当稳定;数以百计的开发者为XMPP技术而努力。今日的互联网上有数以万计的XMPP服务器运作者,并有数以百万计的人们使用XMPP实时传讯软件。
XMPP网络的架构和电子邮件十分相像;XMPP核心协议通信方式是先创建一个stream,XMPP以TCP传递XML数据流,没有中央主服务器。任何人都可以运行自己的XMPP服务器,使个人及组织能够掌控他们的实时传讯体验。
XMPP除了可用在实时通信的应用程序,还能用在网络管理、内容供稿、协同工具、文件共享、游戏、远程系统监控等。
但是,XMPP协议也存在着缺点,例如XMPP协议本身是不管对方是否收到消息,一旦自己发送出去,就说明本条消息发送成功。而所有移动通讯消息都会受到网络信号强弱的影响,在网络信号较弱的情况下,消息就有可能丢失。由于不知接收方是否收到消息,发送方一般都会发送若干遍相同的消息,这样就会造成重复发送消息。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种基于XMPP协议的即时通讯方法,其不管移动网络是否稳定都能保证消息的准确到达,实现不丢消息,不重复发送消息。
本发明的技术解决方案是:这种基于XMPP协议的即时通讯方法,包括以下步骤:
(1)接收第一终端发来的第一消息,根据所述第一消息向所述第一终端发送第一回执;
(2)将所述第一消息转发给所述第一消息的目标用户所在的第二终端,同时将所述第一消息存入redis数据库中;
(3)在预定时间内若没有收到所述第二终端发来的第二回执,则将所述第一消息重新发送给所述第二终端;若收到所述第二终端发来的第二回执,则根据所述第二回执将所述redis数据库中的所述第一消息删除。
还提供了一种基于XMPP协议的即时通讯系统,所述系统包括:
第一接收模块,用于接收第一终端发来的第一消息,根据所述第一消息向所述第一终端发送第一回执;
转发模块,用于将所述第一消息转发给所述第一消息的目标用户所在的第二终端,同时将所述第一消息存入redis数据库中;
第二接收模块,用于在预定时间内没有收到所述第二终端发来的第二回执时,将所述第一消息重新发送给所述第二终端;或用于在收到所述第二终端发来的第二回执时,根据所述第二回执将所述redis数据库中的所述第一消息删除。
本发明采用回执模式,并且将未收到回执的消息存入redis数据库而反复发送,只有超时情况下才不再发送,但会将该消息转存到数据库中,因此不管移动网络是否稳定都能保证消息的准确到达,实现不丢消息,不重复发送消息。
附图说明
图1为本发明一个实施例中基于XMPP协议的即时通讯方法的流程示意图;
图2为本发明另一个实施例中基于XMPP协议的即时通讯系统的模块结构示意图;
图3为本发明一个优选实施例中的典型应用场景示意图;
图4为本发明另一个优选实施例中典型应用场景的方法流程示意图。
具体实施方式
本发明实施例中通过回执机制保证了XMPP协议消息的准确送达,如图1所示,在本发明的一个实施例中,基于XMPP协议的即时通讯方法包括步骤:
(1)接收第一终端发来的第一消息,根据所述第一消息向所述第一终端发送第一回执;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京农信互联科技有限公司,未经北京农信互联科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510477679.8/2.html,转载请声明来源钻瓜专利网。