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

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

Info

Publication number
CN102868677B
CN102868677B CN201210267544.5A CN201210267544A CN102868677B CN 102868677 B CN102868677 B CN 102868677B CN 201210267544 A CN201210267544 A CN 201210267544A CN 102868677 B CN102868677 B CN 102868677B
Authority
CN
China
Prior art keywords
message
xmpp
entity
transmission
control message
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.)
Expired - Fee Related
Application number
CN201210267544.5A
Other languages
English (en)
Other versions
CN102868677A (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

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(ExtensibleMessagingandPresenceProtocol)是一种以XML为基础的开放式即时通讯协议,是经互联网工程工作小组(IETF)通过的互联网标准。XMPP规定了近实时的、可扩展的即时消息(InstantMessaging)传输标准,凭借其巨大的灵活性和开放性在即时通讯市场上占有了很大的份额。若干的计算机行业巨头均采用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 (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端点加入了缓存和有条件的重传机制,使得TCP断连时无法影响XMPP的消息,在断连时没有成功发送的消息依然在发送方的缓存中,在下次重连以后,这些消息会被再次发送,直到接收方明确的发出接受确认;
所述的带外控制消息包含在XMPP用户消息中,与原始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 CN102868677A (zh) 2013-01-09
CN102868677B true 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)

Families Citing this family (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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1734997A (zh) * 2004-08-11 2006-02-15 华为技术有限公司 一种数据传输的方法
CN101997660A (zh) * 2009-08-14 2011-03-30 中兴通讯股份有限公司 一种避免上行数据丢失的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269172B2 (en) * 2003-01-07 2007-09-11 Sun Microsystems, Inc. Method and device for managing transmit buffers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
"XEP-0198:Stream Management";Justin Karneges et al;《XMPP Standards Foundation》;20110629;摘要、第1-4节 *

Also Published As

Publication number Publication date
CN102868677A (zh) 2013-01-09

Similar Documents

Publication Publication Date Title
CN102143444B (zh) 一种业务分发平台消息推送方法、相关设备及系统
CN103916405B (zh) 一种IOS上针对App的TCP/UDP流量引导的方法
CN102202010A (zh) 一种结合短信和网络的消息传递客户端及通信方法
US10382908B2 (en) Method and apparatus for transmitting an soap message in a mobile communication system
CN105024861A (zh) 一种基于北斗卫星的可靠远程通信方法及其通信装置
CN104636986B (zh) 一种基于服务的调度远程安全遥控校核的方法
CN102291699A (zh) 一种ip信息与sms短消息结合的手机短信发送系统及方法
KR101567292B1 (ko) 텍스트 메시징을 위한 레스트풀 웹 서비스들 및 패킷-교환 네트워크들 간의 인터페이스
CN103973414B (zh) 一种数据传输方法及装置
CN103457985A (zh) 一种双通道通信方法和系统
CN111818040A (zh) 物联网传输标准协议实现通信方法
CN101631127A (zh) 文件传输方法及客户端
CN101409939B (zh) 一种实现企业应用数据实时推送的端到端系统及其方法
CN104168273A (zh) 一种瘦ap模式下实现tcp代理的方法及系统
CN104427551A (zh) 一种业务消息发送方法及装置
CN102868677B (zh) 一种xmpp消息的可靠传输方法
CN202043130U (zh) 电站远程控制系统
CN104519022A (zh) 一种建立连接通道的方法及装置
CN102904764A (zh) 一种数据传输装置及其传输方法
CN103391238A (zh) 一种基于xmpp的消息投递状态通告和可靠传输方法
CN110557369A (zh) 基于国产操作系统内核态的高速数据处理平台
CN101888343A (zh) 一种业务数据的发送方法及系统
CN202190407U (zh) 一种ip信息与sms短消息结合的手机短信发送系统
CN101267458A (zh) 一种网络环境中储存系统的数据传输方法
CN103873594A (zh) 服务转接方法及系统

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

Granted publication date: 20151202

Termination date: 20200730

CF01 Termination of patent right due to non-payment of annual fee