CN102868677A - 一种xmpp消息的可靠传输方法 - Google Patents

一种xmpp消息的可靠传输方法 Download PDF

Info

Publication number
CN102868677A
CN102868677A CN2012102675445A CN201210267544A CN102868677A CN 102868677 A CN102868677 A CN 102868677A CN 2012102675445 A CN2012102675445 A CN 2012102675445A CN 201210267544 A CN201210267544 A CN 201210267544A CN 102868677 A CN102868677 A CN 102868677A
Authority
CN
China
Prior art keywords
message
xmpp
control
entity
sending
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012102675445A
Other languages
English (en)
Other versions
CN102868677B (zh
Inventor
王靖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Xike Technology Co Ltd
Original Assignee
Chengdu Xike Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Xike Technology Co Ltd filed Critical Chengdu Xike Technology Co Ltd
Priority to CN201210267544.5A priority Critical patent/CN102868677B/zh
Publication of CN102868677A publication Critical patent/CN102868677A/zh
Application granted granted Critical
Publication of CN102868677B publication Critical patent/CN102868677B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种XMPP消息的可靠传输方法,增加了带外控制消息的XMPP协议按以下步骤进行带外传输控制和协商:S1:XMPP实体在建立新连接时,初始化发送和接收消息计数器为0;S2:XMPP实体每发出一个XMPP消息,就紧跟着发送一个包含有本方发送消息计数值的控制消息,并缓存发送的消息;S3:XMPP实体每收到一个XMPP消息,则检查其后紧跟的控制消息,若控制消息中包含的计数值比实体中接收到消息的计数值大1,则接收这个消息;反之,则要求发送方重发。本发明与现有XMPP协议兼容,可叠加运行在现有XMPP网络中;消息无法发送时,消息在发送方被缓存并反复发送,直至接收方确认送达。

Description

一种XMPP消息的可靠传输方法
技术领域
    本发明涉及一种XMPP消息的可靠传输方法。
背景技术
XMPP(Extensible Messaging and Presence Protocol)是一种以XML为基础的开放式即时通讯协议,是经互联网工程工作小组(IETF)通过的互联网标准。XMPP规定了近实时的、可扩展的即时消息(Instant Messaging)传输标准,凭借其巨大的灵活性和开放性在即时通讯市场上占有了很大的份额。若干的计算机行业巨头均采用XMPP协议实现其即时消息通讯服务。
XMPP不关心消息的可靠送达,它仅依靠底层的TCP连接来保证这一点。但是在不稳定的网络中,无法保持长时间的TCP连接。因此TCP仅仅能保证消息的顺序递交,并不能保证消息不被丢失。这一特点使得在这类网络中使用XMPP格外困难。运行在手机、基站之间的移动通信网络就是一个典型的不稳定网络,用户的通话、短消息,以及基站切换等动作都可能导致连接中断,进而导致消息丢失。
随着移动互联网的逐步发展,对于基于移动互联网的即时消息类服务的需求日益增加。现有的此类业务大多基于私有协议,使得不同服务提供者之间的用户无法互通,目前,急需一种确保XMPP协议能稳定运行在这种网络上的方法。
发明内容
本发明的目的即在于克服现有技术的不足,提供一种基于XMPP消息的点到点的可靠传输方法,这种扩展与现有XMPP协议兼容,不会影响与现有用户的互联互通。
本发明的目的通过以下技术方案来实现:一种XMPP消息的可靠传输方法,在建立在同一个TCP连接上的XMPP协议中增加带外控制消息,实现可靠的点对点XMPP消息传输,所述的增加了带外控制消息的XMPP协议按照以下步骤进行带外传输控制和协商:
S1:每个XMPP实体在建立一个新连接时,分别初始化计数发出的XMPP消息个数的发送消息计算器和计数接收到的XMPP消息个数的接收消息计数器为0;
S2:XMPP实体每发出一个XMPP消息,就紧跟着发送一个包含有本方发送消息计数值的控制消息,与此同时,在发送XMPP消息后,XMPP实体缓存发送的XMPP消息;
S3:XMPP实体每收到一个XMPP消息,则检查其后紧跟的控制消息,若控制消息中包含的计数值比实体中接收到的消息的计数值大1,则接收这个XMPP消息,将接收消息计数器加一,并向发送方发送包含当前接收计数器值的确认控制信息,发送方在接收到这个确认控制消息后,将对应的XMPP消息从缓存中删除;
反之,则发出包含接收方希望收到的XMPP消息编号的控制消息,要求发送方XMPP实体重发XMPP消息,发送方在接收到重发XMPP消息的控制消息后,发送缓存内对应的XMPP消息,循环步骤S2~步骤S3,直至接收方接收发送方发送的XMPP消息。
所述的带外控制消息包含在XMPP用户消息中,与原始XMPP相兼容。
本发明的有益效果是:本发明提供一种基于XMPP消息的点到点的可靠传输方法,这种扩展与现有XMPP协议兼容,可以叠加运行在现有XMPP网络中,不会影响与现有用户的互联互通;本发明实现了XMPP网络中端到端的可靠性保证,在网络不稳定情况下或TCP连接断开等原因导致的消息无法发送等情况下,消息会在发送方被缓存并反复发送,直到接收到接收方的送达确认。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图对本发明做进一步的描述,但本发明的保护范围不局限于以下所述。
如图1所示,一种XMPP消息的可靠传输方法,在建立在同一个TCP连接上的XMPP协议中增加带外控制消息,实现可靠的点对点XMPP消息传输,所述的增加了带外控制消息的XMPP协议按照以下步骤进行带外传输控制和协商: 
S1:每个XMPP实体在建立一个新连接时,分别初始化计数发出的XMPP消息个数的发送消息计算器和计数接收到的XMPP消息个数的接收消息计数器为0;
S2:XMPP实体每发出一个XMPP消息,就紧跟着发送一个包含有本方发送消息计数值的控制消息,与此同时,在发送XMPP消息后,XMPP实体缓存发送的XMPP消息;
S3:XMPP实体每收到一个XMPP消息,则检查其后紧跟的控制消息,若控制消息中包含的计数值比实体中接收到的消息的计数值大1,则接收这个XMPP消息,将接收消息计数器加一,并向发送方发送包含当前接收计数器值的确认控制信息,发送方在接收到这个确认控制消息后,将对应的XMPP消息从缓存中删除;
反之,则发出包含接收方希望收到的XMPP消息编号的控制消息,要求发送方XMPP实体重发XMPP消息,发送方在接收到重发XMPP消息的控制消息后,发送缓存内对应的XMPP消息,循环步骤S2~步骤S3,直至接收方接收发送方发送的XMPP消息。
所述的带外控制消息包含在XMPP用户消息中,与原始XMPP相兼容。
由于在XMPP端点加入了缓存和有条件的重传机制,使得TCP断连时无法影响XMPP的消息。在断连时没有成功发送的消息依然在发送方的缓存中,在下次重连以后,这些消息会被再次发送,直到接收方明确的发出接受确认。
为了实现与现有XMPP协议的兼容性,可以在建立连接时进行参数协商,如果两个XMPP端点都支持以上的纠错算法,才开启使用额外的控制信息。
由于以上描述的控制信息仅仅限制在相邻的两个端点间交互,故而不会给XMPP网络带来其他影响。上述的算法可以叠加在现有XMPP网络中运行,并且只在条件允许(两端都支持)的情况下运行。

Claims (2)

1.一种XMPP消息的可靠传输方法,在建立在同一个TCP连接上的XMPP协议中增加带外控制消息,实现可靠的点对点XMPP消息传输,其特征在于:所述的增加了带外控制消息的XMPP协议按照以下步骤进行带外传输控制和协商:
S1:每个XMPP实体在建立一个新连接时,分别初始化计数发出的XMPP消息个数的发送消息计算器和计数接收到的XMPP消息个数的接收消息计数器为0;
S2:XMPP实体每发出一个XMPP消息,就紧跟着发送一个包含有本方发送消息计数值的控制消息,与此同时,在发送XMPP消息后,XMPP实体缓存发送的XMPP消息;
S3:XMPP实体每收到一个XMPP消息,则检查其后紧跟的控制消息,若控制消息中包含的计数值比实体中接收到的消息的计数值大1,则接收这个XMPP消息,将接收消息计数器加一,并向发送方发送包含当前接收计数器值的确认控制信息,发送方在接收到这个确认控制消息后,将对应的XMPP消息从缓存中删除;
反之,则发出包含接收方希望收到的XMPP消息编号的控制消息,要求发送方XMPP实体重发XMPP消息,发送方在接收到重发XMPP消息的控制消息后,发送缓存内对应的XMPP消息,循环步骤S2~步骤S3,直至接收方接收发送方发送的XMPP消息。
2.根据权利要求1所述的一种XMPP消息的可靠传输方法,其特征在于:所述的带外控制消息包含在XMPP用户消息中,与原始XMPP相兼容。
CN201210267544.5A 2012-07-30 2012-07-30 一种xmpp消息的可靠传输方法 Expired - Fee Related CN102868677B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210267544.5A CN102868677B (zh) 2012-07-30 2012-07-30 一种xmpp消息的可靠传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210267544.5A CN102868677B (zh) 2012-07-30 2012-07-30 一种xmpp消息的可靠传输方法

Publications (2)

Publication Number Publication Date
CN102868677A true CN102868677A (zh) 2013-01-09
CN102868677B CN102868677B (zh) 2015-12-02

Family

ID=47447271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210267544.5A Expired - Fee Related CN102868677B (zh) 2012-07-30 2012-07-30 一种xmpp消息的可靠传输方法

Country Status (1)

Country Link
CN (1) CN102868677B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104539524A (zh) * 2015-01-04 2015-04-22 深圳中兴网信科技有限公司 基于xmpp协议的消息传输方法及系统、终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040131074A1 (en) * 2003-01-07 2004-07-08 Kurth Hugh R. Method and device for managing transmit buffers
CN1734997A (zh) * 2004-08-11 2006-02-15 华为技术有限公司 一种数据传输的方法
CN101997660A (zh) * 2009-08-14 2011-03-30 中兴通讯股份有限公司 一种避免上行数据丢失的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040131074A1 (en) * 2003-01-07 2004-07-08 Kurth Hugh R. Method and device for managing transmit buffers
CN1734997A (zh) * 2004-08-11 2006-02-15 华为技术有限公司 一种数据传输的方法
CN101997660A (zh) * 2009-08-14 2011-03-30 中兴通讯股份有限公司 一种避免上行数据丢失的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JUSTIN KARNEGES ET AL: ""XEP-0198:Stream Management"", 《XMPP STANDARDS FOUNDATION》, 29 June 2011 (2011-06-29), pages 1 - 4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104539524A (zh) * 2015-01-04 2015-04-22 深圳中兴网信科技有限公司 基于xmpp协议的消息传输方法及系统、终端

Also Published As

Publication number Publication date
CN102868677B (zh) 2015-12-02

Similar Documents

Publication Publication Date Title
CN102143444B (zh) 一种业务分发平台消息推送方法、相关设备及系统
US10382908B2 (en) Method and apparatus for transmitting an soap message in a mobile communication system
CN105024861A (zh) 一种基于北斗卫星的可靠远程通信方法及其通信装置
CN102325084B (zh) 一种iec104通讯规约转发中实现数据交换的方法及系统
CN103973414B (zh) 一种数据传输方法及装置
KR101567292B1 (ko) 텍스트 메시징을 위한 레스트풀 웹 서비스들 및 패킷-교환 네트워크들 간의 인터페이스
CN102202010A (zh) 一种结合短信和网络的消息传递客户端及通信方法
CN111818040A (zh) 物联网传输标准协议实现通信方法
WO2011100911A2 (zh) 探测处理方法、数据发送端、数据接收端以及通信系统
CN102868609A (zh) 一种最大传输单元协商方法及数据终端
CN112566180B (zh) 一种提升tetra系统分组数据传输速率的方法
CN101631127A (zh) 文件传输方法及客户端
CN112702411A (zh) 一种解决cantp多帧丢包重传的方法
CN104168273A (zh) 一种瘦ap模式下实现tcp代理的方法及系统
CN104427551A (zh) 一种业务消息发送方法及装置
CN107645700B (zh) 一种基于ussd协议的移动通信数据传输方法
CN102868677B (zh) 一种xmpp消息的可靠传输方法
CN102904764A (zh) 一种数据传输装置及其传输方法
CN110557369A (zh) 基于国产操作系统内核态的高速数据处理平台
CN103391238A (zh) 一种基于xmpp的消息投递状态通告和可靠传输方法
WO2010009666A1 (zh) 多媒体业务的实现方法、系统和装置
CN105242908A (zh) 一种基于串口硬流控的甚高频电台大文件传输方法
CN104394068A (zh) 一种基于商用客户端的短波E-mail发送、接收以及通信方法
CN104703152A (zh) 一种短消息处理方法及装置
CN111277986B (zh) 一种提高iOS设备蓝牙传输速度的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Two Lu Tian Hua high tech Zone of Chengdu City, Sichuan province 610041 No. 219 Tianfu Software Park C District 12 building 6 layer

Applicant after: Chengdu Xike Technology Co.,Ltd.

Address before: The middle Tianfu Avenue in Chengdu city Sichuan province 610041 No. 765 talent Software Park A District No. 1 Building 2 room 214

Applicant before: Chengdu Xike Technology Co.,Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151202

Termination date: 20200730