消息投递的管理方法、服务器和系统技术方案

技术编号:9599291 阅读:72 留言:0更新日期:2014-01-23 04:05
本发明专利技术公开了一种消息投递的管理方法、服务器和系统,能够降低服务器的内存压力、准确感知消息是否成功送达,提高消息的质量。本发明专利技术实施例提供的一种消息投递的管理方法包括:根据消息的投递次序,对发送设备通过TCP连接所投递的消息进行存储,所述消息包括第一消息;在接收到接收设备所返回的对所述第一消息的应答时,在所存储的消息中查找投递次序在所述第一消息的投递次序之前的消息,确认所查找到的消息和所述第一消息投递成功,并从所存储的消息中移除所述所查找到的消息和第一消息。

【技术实现步骤摘要】
消息投递的管理方法、服务器和系统
本专利技术涉及通信
,特别涉及一种消息投递的管理方法、服务器和系统。
技术介绍
在当今的互联网时代,各种类型的数据通信系统,如即时通信(InstantMessaging,IM)系统,扮演着一个极为重要的角色,而通讯能力无疑是系统最为重要的功能。在通讯这个环节中,最为重要的无疑是消息的质量。在评估消息的质量时主要考虑两个方面,一个是消息投递的时间,另一个是消息投递的达到率。所谓消息投递的达到率,就是指对于发送方发给接收方的消息,投递成功的消息总数与总投递消息数的比率。这个到达率往往是IM系统的关键核心指标,它决定着IM系统的可用性。而IM系统对消息的投递的原则主要为:对消息是否送达要可感知。目前很多IM系统是基于传输控制协议(TransmissionControlProtocol,TCP)和协议栈共同实现消息的投递的。由于一个庞大的IM系统,消息量是极其庞大的,所以现有方案为服务器设定一个消息超时时间,在这个超时时间内,服务器将来自发送方的消息缓存,若在消息超时时间内收到了接收方成功接收到消息的确认,则认为消息投递成功,并在缓存中清理该消息,若在消息超时时间内没有收到接收方对该消息的确认,则认为消息超时,投递失败。上述现有的IM消息投递方案至少具有如下缺陷:目前所设置的消息超时时间的数值多为经验值,而若该数值设置大了,会导致服务器的内存压力较大,若该数值设置小了,接收方的确认消息无法在消息超时时间内到达服务器,又会导致很多成功投递的消息被误认为失败,导致服务器对消息是否送达的感知上出现判断错误,对消息质量造成影响。专利
技术实现思路
本专利技术实施例提供了一种消息投递的管理方法、服务器和系统,以解决现有方案无法合理设置消息超时时间而影响消息质量的问题。为达到上述目的,本专利技术实施例采用了如下技术方案:本专利技术实施例提供了一种消息投递的管理方法,所述方法包括:根据消息的投递次序,对发送设备通过传输控制协议TCP连接所投递的消息进行存储,所述消息包括第一消息;在接收到接收设备所返回的对所述第一消息的应答时,在所存储的消息中查找投递次序在所述第一消息的投递次序之前的消息,确认所查找到的消息和所述第一消息投递成功,并从所存储的消息中移除所述所查找到的消息和第一消息。本专利技术实施例还提供了一种服务器,所述服务器包括消息投递的管理装置,所述消息投递的管理装置包括:存储单元,用于根据消息的投递次序,对发送设备通过传输控制协议TCP连接所投递的消息进行存储,所述消息包括第一消息;投递管理单元,用于在接收到接收设备所返回的对所述第一消息的应答时,在所存储的消息中查找投递次序在所述第一消息的投递次序之前的消息,确认所查找到的消息和所述第一消息投递成功,并从所存储的消息中移除所述所查找到的消息和第一消息。本专利技术实施例还提供了一种消息投递系统,所述系统包括第二服务器以及上述的第一服务器,所述第一服务器,当接收到接收设备的注销请求或者监测到发送设备与接收设备之间的TCP连接出现异常时,确认相应消息管理队列中当前仍存在的消息投递失败,将所述确认为投递失败的消息上报并存储至第二服务器;所述第二服务器,当存在确认为投递失败的消息时,判断与接收设备之间是否存在有效TCP连接,若是,将所述投递失败的消息通过所述有效TCP连接以在线消息的方式发送给接收设备,若否,在所设置的重连等待时间段内监测接收设备的连接状态,当监测到与接收设备之间存在有效TCP连接时,将所述投递失败的消息通过所述监测到的有效TCP连接发送给接收设备,当未监测到与接收设备之间存在有效TCP连接时,将所述投递失败的消息以短信方式或者离线消息的方式发送给接收设备。本专利技术实施例的有益效果是:本专利技术实施例利用TCP数据传输机制的特点,通过在收到接收设备对一个消息的应答时,确认该消息以及在该消息投递次序之前的消息都投递成功并移除这些消息的技术手段,达到了降低服务器的内存压力、准确感知消息是否送达的技术效果,从而提高了消息的质量。附图说明图1为本专利技术实施例一提供的一种消息投递的管理方法流程图;图2为本专利技术实施例二提供的一种消息投递的管理方法流程图;图3为本专利技术实施例三提供的一种服务器的结构示意图;图4为本专利技术实施例四提供的一种消息投递系统结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。传输控制协议(TransmissionControlProtocol,TCP)是TCP/IP协议栈中的传输层协议,它给互联网协议(InternetProtocol,IP)提供了面向连接的和可靠的服务。TCP允许发送和接收字节流形式的数据,并提供全双工服务,可以双向发送数据。在TCP下投递消息是具有顺序性的,发送设备按照一定序列投递消息数据包。当发送设备调用发送功能(如调用socket.Send方法)并执行成功时,仅仅表示应用已经将数据流成功的写入到TCP的缓存层,并不表示接收设备成功收到。而接收设备每收到一个TCP的消息数据包都需要返回给发送设备一个应答告诉发送设备已成功接到此消息数据包,如果在规定时间内,发送设备没有收到对此消息数据包的应答,则会重新发送此消息数据包,直至接收到此消息数据包的应答再进入下一个消息数据包的投递,这保证了TCP是一种可靠的传输层协议。本方案正是利用上述TCP数据传输机制的特点,提出了一种新型的消息投递的管理机制,不再采用利用消息超时时间管理消息投递的传统方式,避免了因消息超时时间设置不合理,降低了消息质量的问题,降低服务器的内存压力、准确感知消息是否送达的技术效果。参见图1,为本专利技术实施例一提供的一种消息投递的管理方法,具体包括:11:根据消息的投递次序,对发送设备通过TCP连接所投递的消息进行存储,所述消息包括第一消息。该第一消息为发送设备已投递消息中的任一消息。12:在接收到接收设备所返回的对所述第一消息的应答时,在所存储的消息中查找投递次序在所述第一消息的投递次序之前的消息,确认所查找到的消息和所述第一消息投递成功,并从所存储的消息中移除所述所查找到的消息和第一消息。对消息进行存储时,不但可以对需要投递的消息的内容本身进行存储,也可以消息的上下文信息进行存储,该上下文信息指示发送设备的地址,在收到接收设备的应答时,可以通过缓存的上下文信息将应答告知发送设备,使发送设备获知投递成功。注:对于不存在投递次序在第一消息的投递次序之前的消息的场景,所查找到的消息为空。上述步骤11和12可以由网络中的服务器实现,例如,对发送设备、接收设备分别通过相应的代理服务器接入应用服务器的场景,上述步骤11和12可以由发送设备一侧的代理服务器实现。上述消息根据应用业务的不同而变化,如对IM通信业务,上述消息为IM消息。由上所述,本专利技术实施例利用TCP数据传输机制的特点,通过在收到接收设备对一个消息的应答时,确认该消息以及在该消息投递次序之前的消息都投递成功并移除这些消息的技术手段,达到了降低服务器的内存压力、准确感知消息是否送达的技术效果,从而提高了消息的质量。为了便于清楚描述本专利技术实施例的技术方案,在专利技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分本文档来自技高网
...
消息投递的管理方法、服务器和系统

【技术保护点】
一种消息投递的管理方法,其特征在于,所述方法包括:根据消息的投递次序,对发送设备通过传输控制协议TCP连接所投递的消息进行存储,所述消息包括第一消息;在接收到接收设备所返回的对所述第一消息的应答时,在所存储的消息中查找投递次序在所述第一消息的投递次序之前的消息,确认所查找到的消息和所述第一消息投递成功,并从所存储的消息中移除所述所查找到的消息和第一消息。

【技术特征摘要】
1.一种消息投递的管理方法,其特征在于,所述方法包括:根据消息的投递次序,对发送设备通过传输控制协议TCP连接所投递的消息进行存储,所述消息包括第一消息;在接收到接收设备所返回的对所述第一消息的应答时,在所存储的消息中查找投递次序在所述第一消息的投递次序之前的消息,确认所查找到的消息和所述第一消息投递成功,并从所存储的消息中移除所述查找到的消息和第一消息。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:建立针对所述TCP连接的消息管理队列;所述根据消息的投递次序,对发送设备通过传输控制协议TCP连接所投递的消息进行存储包括:根据消息的投递次序,从消息管理队列的队头至队尾依次将发送设备通过TCP连接所投递的消息存储至消息管理队列中。3.根据权利要求2所述的方法,其特征在于,所述在所存储的消息中查找投递次序在所述第一消息的投递次序之前的消息包括:在消息管理队列中查找所述第一消息与消息管理队列的队头之间消息,并将所述第一消息与消息管理队列的队头之间消息作为所述查找到的消息。4.根据权利要求2所述的方法,其特征在于,所述从所存储的消息中移除所述查找到的消息和第一消息包括:通过将所述查找到的消息和第一消息从消息管理队列中出队,以从所存储的消息中移除所述查找到的消息和第一消息,所述消息管理队列更新为所述第一消息的下一消息作为队头的队列。5.根据权利要求2至4任一项所述的方法,其特征在于,所述方法还包括:为消息管理队列设置长度阈值;当消息管理队列中存储消息所占用的队列长度大于所述长度阈值时,确认所述接收设备为可疑接收设备,并不再对发送设备向所述可疑接收设备所投递的消息进行存储。6.根据权利要求2至4任一项所述的方法,其特征在于,所述方法还包括:当接收到接收设备的注销请求或者监测到发送设备与接收设备之间的TCP连接出现异常时,确认相应消息管理队列中当前仍存在的消息均为投递失败的消息,将所述确认为投递失败的消息上报并存储至消息补偿服务功能。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:当存在确认为投递失败的消息时,所述消息补偿服务功能判断与接收设备之间是否存在有效TCP连接,若是,将所述投递失败的消息通过所述有效TCP连接以在线消息的方式发送给接收设备,若否,所述消息补偿服务功能在所设置的重连等待时间段内监测所述消息补偿服务功能与接收设备之间的连接状态,当监测到所述消息补偿服务...

【专利技术属性】
技术研发人员:刘玎
申请(专利权)人:北京神州泰岳软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1