CN103391238A - 一种基于xmpp的消息投递状态通告和可靠传输方法 - Google Patents
一种基于xmpp的消息投递状态通告和可靠传输方法 Download PDFInfo
- Publication number
- CN103391238A CN103391238A CN2012101437045A CN201210143704A CN103391238A CN 103391238 A CN103391238 A CN 103391238A CN 2012101437045 A CN2012101437045 A CN 2012101437045A CN 201210143704 A CN201210143704 A CN 201210143704A CN 103391238 A CN103391238 A CN 103391238A
- Authority
- CN
- China
- Prior art keywords
- message
- xmpp
- delivery state
- notice
- dilivery
- 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.)
- Pending
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种针对XMPP(Extensible Messaging and Presence Protocol)的消息投递状态通告和可靠传输方法,涉及即时消计算机应用技术领域,尤其是即时消息通讯领域。XMPP协议是IETF制定的即时消息(IM)领域标准,在很多场景中有广泛的应用。虽然XMPP协议在去中心化、可扩展性等方面有着巨大的优势,却并不提供消息投递状态的通知,以及无法确保消息可靠送达。本发明通过增加在关键节点上的特定消息,实现了消息投递状态的通知,并在此基础上保证了端到端的消息可靠传输。
Description
技术领域
本发明涉及计算机应用技术领域,尤其是即时消息通讯领域。
背景技术
XMPP(Extensible Messaging and Presence Protocol)是一种以XML为基础的开放式即时通讯协议,是经互联网工程工作小组(IETF)通过的互联网标准。XMPP规定了近实时的、可扩展的即时消息(InstantMessaging)传输标准,并其巨大的灵活性和开放性在即时通讯市场上占有了很大的份额。若干计算机行业巨头都采用了XMPP协议实现其即时消息通讯服务。
但是,标准的XMPP协议并未提供消息投递状态的通告。发送方在消息发出后无法得知消息的送达状态。例如消息是否被服务器处理,消息是否已经送达接收端等等。由此带来的问题在网络不稳定时尤其明显。发送端、接收端、服务器以及他们之间的网络连接中任意一点发生故障都有可能导致消息的延迟甚至丢失。而无论消息是送达或者丢失,发送端并不会得到通知。
针对这一问题,本发明提供了一种对XMPP协议进行了扩展的方法,使服务器和接收方向发送方返回特定的消息格式,通知消息的送达、已读等状态。基于这些消息,本发明提供了一种XMPP消息端到端可靠传输的方法,解决了网络或节点故障导致即时消息丢失的问题。
发明内容
本发明的目的在于克服现有技术的不足,提供消息送达状态通知和端到端的消息可靠性保证。所涉及到的实体包括:1)XMPP消息发送端,2)XMPP通信服务器,3)XMPP消息接收端。其特征在于:
如上所述的实体1)XMPP发送端首先是一个XMPP客户端,提供用户登录、消息发送,用户在线状态交互等功能。在此基础上,它还提供了以下功能
1.接受并识别来自实体2)发送的消息状态通知的功能,
2.接受并识别来自实体3)发送的消息状态通知的功能,
3.缓存发出消息的功能,
4.在特定条件被触发时重发消息的功能。
如上所述的实体2)XMPP通信服务器包括以下功能
1.XMPP协议中规定的功能,
2.发送特定通知到实体1)的功能。
如上所述的实体3)XMPP消息接收端同样是一个XMPP客户端,提供XMPP协议的交互以及和用户的交互功能,在此基础上,它还提供以下功能:
1.发送消息状态通知通知到实体1)的功能。
2.识别用户阅读消息动作的功能。
本发明的核心思想是,在每个关键节点对发送端进行确认,提供消息的投递状态,并在此基础上通过按需的重发提供消息端到端的可靠性。XMPP通信服务器和XMPP接收端在收到即时消息后,都需要立即向发送端发送特定格式的消息状态通知。XMPP发送端在收到前述确认后,可以向用户反馈消息的投递状态,从而改善用户体验。XMPP发送端在若干时间后没有收到接收端确认的情况下,可以选择重新发送消息,从而保证端到端的消息送达可靠性。
本发明的价值在于,
1.提供了XMPP消息投递状态的通知,使得发送方用户及时得到消息状态反馈,对用户更加友好。
2.在投递状态的基础上,结合重发机制,提供了XMPP消息端到端的可靠性保证。
3.基于端到端的可靠送达保证,提供了在不稳定的网络中,使XMPP协议实用化的方法。我们常用的移动通信网络就是一个典型的不稳定网络,用户的位置移动、通话,短消息等活动都有可能导致XMPP消息丢失。本发明使得在这样的网络中也能可靠的使用XMPP协议。
附图说明
图1是本发明的消息交互流程图(正常流程)
图2是本发明的消息交互流程图(丢包、重传流程)
具体实施方式
下面结合附图1对技术方案的实施进行详细描述:
第一步:发送端实体发出消息体,并等待来自XMPP服务器和接收端实体的通知消息。
第二步:XMPP服务器在接收到第一步中发送的消息后,首先向发送端实体返回特定格式的送达通知。然后按照XMPP协议对消息进行转发。
第三步:发送端实体在接收到第二部中的送达通知后,确认消息已经发送到服务器。
第四步:接收端实体在接收到XMPP服务器转发的消息后,向发送端实体返回特定格式的送达通知。通知经由XMPP服务器转发。
第五步:发送端实体在接收到第四步的送达通知后,获知消息已经成功抵达目的。
第六步:接收端实体在用户查看消息内容后,向发送端实体发送已读通知。通知经由XMPP服务器转发
如果在消息交互的任何一步中发生了信息丢失,则会进入自动重发过程,下面结合图2中的例子对实施方案进行详细描述:
第一步:发送端实体发出消息,并等待来自XMPP服务器和接收端实体的通知消息。
第二步:XMPP服务器在接收到第一步中发送的消息后,首先向发送端实体返回特定格式的送达通知。然后按照XMPP协议对消息进行转发。
第三步:消息在XMPP服务器的转发后丢失了。
第四步:发送端实体在某条件触发后(如超时)如果依然没有收到来自接收端实体的确认消息,则触发重发流程。回到附图1的第一步重新开始。
在以上的流程中,由于发送端实体的重发动作,接收端实体可能会接收到多个同样内容的消息,此时接收端实体应该根据消息的特征对重复的消息进行屏蔽。
来自XMPP服务器和接收端实体的响应消息应该符合XMPP的消息要求,并通过某XMPP属性(如特征码)明确与发送端实体发送的原消息的关系。例如,假设在正常的发送过程中发送端实体在第一步中发送了特征码为0123456的消息。那么第二步中XMPP服务器应该返回特征码为SR0123456的送达通知,第四步中接收端实体应该返回特征码为DR0123456的送达通知。第六步中接收端实体应该返回特征码为RR0123456的送达通知。
Claims (4)
1.一种基于XMPP的消息投递状态通告方法,以及以此为基础的XMPP网络中实现端到端消息可靠传输的方法,其特征为XMPP通信服务器和XMPP消息接收端都在收到消息后需要向消息发送端返回状态报告,XMPP消息发送端在消息发送后缓存消息,并通过在特定条件下重发实现消息的可靠送达。
2.根据权利要求1所述的基于XMPP的消息投递状态通告方法,其特征在于XMPP通信服务器和XMPP接收端返回的消息状态通知应以某种方式和特定原消息对应。
3.根据权利要求1所述的基于XMPP的消息投递状态通告方法,其特征在于返回的消息状态通知包括但不限于消息送达、已读通知。
4.根据权利要求1所述的基于XMPP的消息投递状态通告方法,其特征在于消息发送端在特定条件满足时重发消息以确保消息可靠送达。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101437045A CN103391238A (zh) | 2012-05-10 | 2012-05-10 | 一种基于xmpp的消息投递状态通告和可靠传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101437045A CN103391238A (zh) | 2012-05-10 | 2012-05-10 | 一种基于xmpp的消息投递状态通告和可靠传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103391238A true CN103391238A (zh) | 2013-11-13 |
Family
ID=49535401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101437045A Pending CN103391238A (zh) | 2012-05-10 | 2012-05-10 | 一种基于xmpp的消息投递状态通告和可靠传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103391238A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539524A (zh) * | 2015-01-04 | 2015-04-22 | 深圳中兴网信科技有限公司 | 基于xmpp协议的消息传输方法及系统、终端 |
CN105119810A (zh) * | 2015-08-06 | 2015-12-02 | 北京农信互联科技有限公司 | 一种基于xmpp协议的即时通讯方法及系统 |
CN108631955A (zh) * | 2018-05-15 | 2018-10-09 | 网易(杭州)网络有限公司 | 一种确保消息发送可达的方法、系统和装置 |
CN110460511A (zh) * | 2019-08-01 | 2019-11-15 | 安徽四创电子股份有限公司 | 一种不稳定网络环境下可靠通信的实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1734997A (zh) * | 2004-08-11 | 2006-02-15 | 华为技术有限公司 | 一种数据传输的方法 |
EP1508228B1 (de) * | 2002-05-24 | 2010-02-24 | Gigaset Communications GmbH | Verfahren und Vorrichtungen zur Nachrichtenübertragung |
CN101500210B (zh) * | 2009-03-16 | 2011-07-20 | 北京北纬点易信息技术有限公司 | 基于xmpp协议的低传输负载的即时通信方法及其系统 |
-
2012
- 2012-05-10 CN CN2012101437045A patent/CN103391238A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1508228B1 (de) * | 2002-05-24 | 2010-02-24 | Gigaset Communications GmbH | Verfahren und Vorrichtungen zur Nachrichtenübertragung |
CN1734997A (zh) * | 2004-08-11 | 2006-02-15 | 华为技术有限公司 | 一种数据传输的方法 |
CN101500210B (zh) * | 2009-03-16 | 2011-07-20 | 北京北纬点易信息技术有限公司 | 基于xmpp协议的低传输负载的即时通信方法及其系统 |
Non-Patent Citations (1)
Title |
---|
谢希仁: "《计算机网络教程》", 31 May 2006, article "传输控制协议TCP" * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539524A (zh) * | 2015-01-04 | 2015-04-22 | 深圳中兴网信科技有限公司 | 基于xmpp协议的消息传输方法及系统、终端 |
CN105119810A (zh) * | 2015-08-06 | 2015-12-02 | 北京农信互联科技有限公司 | 一种基于xmpp协议的即时通讯方法及系统 |
CN108631955A (zh) * | 2018-05-15 | 2018-10-09 | 网易(杭州)网络有限公司 | 一种确保消息发送可达的方法、系统和装置 |
CN110460511A (zh) * | 2019-08-01 | 2019-11-15 | 安徽四创电子股份有限公司 | 一种不稳定网络环境下可靠通信的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101340268B (zh) | 节点间通信确认机制的实现方法和实现系统 | |
CN102143137A (zh) | 媒体流发送及接收方法、装置和系统 | |
JP2008535120A (ja) | 移動通信端末のインスタントメッセージ伝送方法及びシステム | |
US11095747B2 (en) | Method and apparatus for receiving response information in M2M system | |
CN105119810A (zh) | 一种基于xmpp协议的即时通讯方法及系统 | |
CN103973414B (zh) | 一种数据传输方法及装置 | |
CN103532822A (zh) | 消息投递的管理方法、服务器和系统 | |
RU2449474C1 (ru) | Способ выполнения защиты от дублирования сообщений о переадресации при взаимодействии мультимедийных сообщений и межсетевой шлюз мультимедийных сообщений | |
CN103391238A (zh) | 一种基于xmpp的消息投递状态通告和可靠传输方法 | |
CN101223746B (zh) | 寻呼模式消息收发 | |
CN113765976A (zh) | 一种通信方法和系统 | |
CN101110789B (zh) | 一种即时消息系统中发送即时消息报告的方法 | |
CN101674235B (zh) | 数据传输方法和设备 | |
CN101888610A (zh) | 一种实现短消息业务的方法、系统和装置 | |
CN105357577A (zh) | 一种丢包重传方法及装置 | |
CN104348874A (zh) | 云平台组件之间消息传输的方法与装置 | |
US20160204904A1 (en) | Service Message Transmitting Method and Device | |
TWI599207B (zh) | 推播訊息傳遞方法與訊息傳遞系統 | |
CN113412478B (zh) | 消息收发方法、通信装置以及程序 | |
CN105141526A (zh) | 虚拟网络通信的方法及装置 | |
CN100512288C (zh) | 基于传输控制协议的报文传输系统及其方法 | |
CN101548514A (zh) | 在一个移动无线电系统中交换消息的方法和设备 | |
CN103368923B (zh) | 消息传输处理方法及装置 | |
CN108988994B (zh) | 报文的重传方法及装置 | |
CN109586931A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131113 |