CN103532822A - 消息投递的管理方法、服务器和系统 - Google Patents

消息投递的管理方法、服务器和系统 Download PDF

Info

Publication number
CN103532822A
CN103532822A CN201210227988.6A CN201210227988A CN103532822A CN 103532822 A CN103532822 A CN 103532822A CN 201210227988 A CN201210227988 A CN 201210227988A CN 103532822 A CN103532822 A CN 103532822A
Authority
CN
China
Prior art keywords
message
receiving equipment
tcp
queue
server
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
CN201210227988.6A
Other languages
English (en)
Other versions
CN103532822B (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.)
Beijing Shenzhou Taiyue Software Co Ltd
Original Assignee
Beijing Shenzhou Taiyue Software 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 Beijing Shenzhou Taiyue Software Co Ltd filed Critical Beijing Shenzhou Taiyue Software Co Ltd
Priority to CN201210227988.6A priority Critical patent/CN103532822B/zh
Publication of CN103532822A publication Critical patent/CN103532822A/zh
Application granted granted Critical
Publication of CN103532822B publication Critical patent/CN103532822B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

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

Description

消息投递的管理方法、服务器和系统
技术领域
本发明涉及通信技术领域,特别涉及一种消息投递的管理方法、服务器和系统。
背景技术
在当今的互联网时代,各种类型的数据通信系统,如即时通信(InstantMessaging,IM)系统,扮演着一个极为重要的角色,而通讯能力无疑是系统最为重要的功能。在通讯这个环节中,最为重要的无疑是消息的质量。在评估消息的质量时主要考虑两个方面,一个是消息投递的时间,另一个是消息投递的达到率。
所谓消息投递的达到率,就是指对于发送方发给接收方的消息,投递成功的消息总数与总投递消息数的比率。这个到达率往往是IM系统的关键核心指标,它决定着IM系统的可用性。而IM系统对消息的投递的原则主要为:对消息是否送达要可感知。
目前很多IM系统是基于传输控制协议(Transmission Control Protocol,TCP)和协议栈共同实现消息的投递的。由于一个庞大的IM系统,消息量是极其庞大的,所以现有方案为服务器设定一个消息超时时间,在这个超时时间内,服务器将来自发送方的消息缓存,若在消息超时时间内收到了接收方成功接收到消息的确认,则认为消息投递成功,并在缓存中清理该消息,若在消息超时时间内没有收到接收方对该消息的确认,则认为消息超时,投递失败。
上述现有的IM消息投递方案至少具有如下缺陷:
目前所设置的消息超时时间的数值多为经验值,而若该数值设置大了,会导致服务器的内存压力较大,若该数值设置小了,接收方的确认消息无法在消息超时时间内到达服务器,又会导致很多成功投递的消息被误认为失败,导致服务器对消息是否送达的感知上出现判断错误,对消息质量造成影响。
发明内容
本发明实施例提供了一种消息投递的管理方法、服务器和系统,以解决现有方案无法合理设置消息超时时间而影响消息质量的问题。
为达到上述目的,本发明实施例采用了如下技术方案:
本发明实施例提供了一种消息投递的管理方法,所述方法包括:
根据消息的投递次序,对发送设备通过传输控制协议TCP连接所投递的消息进行存储,所述消息包括第一消息;
在接收到接收设备所返回的对所述第一消息的应答时,在所存储的消息中查找投递次序在所述第一消息的投递次序之前的消息,确认所查找到的消息和所述第一消息投递成功,并从所存储的消息中移除所述所查找到的消息和第一消息。
本发明实施例还提供了一种服务器,所述服务器包括消息投递的管理装置,所述消息投递的管理装置包括:
存储单元,用于根据消息的投递次序,对发送设备通过传输控制协议TCP连接所投递的消息进行存储,所述消息包括第一消息;
投递管理单元,用于在接收到接收设备所返回的对所述第一消息的应答时,在所存储的消息中查找投递次序在所述第一消息的投递次序之前的消息,确认所查找到的消息和所述第一消息投递成功,并从所存储的消息中移除所述所查找到的消息和第一消息。
本发明实施例还提供了一种消息投递系统,所述系统包括第二服务器以及上述的第一服务器,
所述第一服务器,当接收到接收设备的注销请求或者监测到发送设备与接收设备之间的TCP连接出现异常时,确认相应消息管理队列中当前仍存在的消息投递失败,将所述确认为投递失败的消息上报并存储至第二服务器;
所述第二服务器,当存在确认为投递失败的消息时,判断与接收设备之间是否存在有效TCP连接,若是,将所述投递失败的消息通过所述有效TCP连接以在线消息的方式发送给接收设备,若否,在所设置的重连等待时间段内监测接收设备的连接状态,当监测到与接收设备之间存在有效TCP连接时,将所述投递失败的消息通过所述监测到的有效TCP连接发送给接收设备,当未监测到与接收设备之间存在有效TCP连接时,将所述投递失败的消息以短信方式或者离线消息的方式发送给接收设备。
本发明实施例的有益效果是:
本发明实施例利用TCP数据传输机制的特点,通过在收到接收设备对一个消息的应答时,确认该消息以及在该消息投递次序之前的消息都投递成功并移除这些消息的技术手段,达到了降低服务器的内存压力、准确感知消息是否送达的技术效果,从而提高了消息的质量。
附图说明
图1为本发明实施例一提供的一种消息投递的管理方法流程图;
图2为本发明实施例二提供的一种消息投递的管理方法流程图;
图3为本发明实施例三提供的一种服务器的结构示意图;
图4为本发明实施例四提供的一种消息投递系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
传输控制协议(Transmission Control Protocol,TCP)是TCP/IP协议栈中的传输层协议,它给互联网协议(Internet Protocol,IP)提供了面向连接的和可靠的服务。TCP允许发送和接收字节流形式的数据,并提供全双工服务,可以双向发送数据。
在TCP下投递消息是具有顺序性的,发送设备按照一定序列投递消息数据包。当发送设备调用发送功能(如调用socket.Send方法)并执行成功时,仅仅表示应用已经将数据流成功的写入到TCP的缓存层,并不表示接收设备成功收到。而接收设备每收到一个TCP的消息数据包都需要返回给发送设备一个应答告诉发送设备已成功接到此消息数据包,如果在规定时间内,发送设备没有收到对此消息数据包的应答,则会重新发送此消息数据包,直至接收到此消息数据包的应答再进入下一个消息数据包的投递,这保证了TCP是一种可靠的传输层协议。
本方案正是利用上述TCP数据传输机制的特点,提出了一种新型的消息投递的管理机制,不再采用利用消息超时时间管理消息投递的传统方式,避免了因消息超时时间设置不合理,降低了消息质量的问题,降低服务器的内存压力、准确感知消息是否送达的技术效果。
参见图1,为本发明实施例一提供的一种消息投递的管理方法,具体包括:
11:根据消息的投递次序,对发送设备通过TCP连接所投递的消息进行存储,所述消息包括第一消息。该第一消息为发送设备已投递消息中的任一消息。
12:在接收到接收设备所返回的对所述第一消息的应答时,在所存储的消息中查找投递次序在所述第一消息的投递次序之前的消息,确认所查找到的消息和所述第一消息投递成功,并从所存储的消息中移除所述所查找到的消息和第一消息。
对消息进行存储时,不但可以对需要投递的消息的内容本身进行存储,也可以消息的上下文信息进行存储,该上下文信息指示发送设备的地址,在收到接收设备的应答时,可以通过缓存的上下文信息将应答告知发送设备,使发送设备获知投递成功。
注:对于不存在投递次序在第一消息的投递次序之前的消息的场景,所查找到的消息为空。
上述步骤11和12可以由网络中的服务器实现,例如,对发送设备、接收设备分别通过相应的代理服务器接入应用服务器的场景,上述步骤11和12可以由发送设备一侧的代理服务器实现。上述消息根据应用业务的不同而变化,如对IM通信业务,上述消息为IM消息。
由上所述,本发明实施例利用TCP数据传输机制的特点,通过在收到接收设备对一个消息的应答时,确认该消息以及在该消息投递次序之前的消息都投递成功并移除这些消息的技术手段,达到了降低服务器的内存压力、准确感知消息是否送达的技术效果,从而提高了消息的质量。
为了便于清楚描述本发明实施例的技术方案,在发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
下面结合图2对本发明实施例二提供的一种消息投递的管理方法进行说明。本实施例以发送设备通过网络中的服务器(如第一服务器)向接收设备投递消息的场景为例进行说明,由第一服务器实现对消息投递的管理。
1:建立针对TCP连接的消息管理队列。
本实施例中在每一条TCP连接上维护一个已投递消息的消息管理队列,采用队列形式对已投递的消息进行存储。
可选的,也可以采用数据表等其它方式对已投递的消息进行存储。由于采用队列形式时,不但能够基于投递次序对已投递的消息进行存储达到本实施例的目的,而且结构简单、方便实现,便于操作,所以本实施例主要以利用队列存储已投递消息的情况进行说明。
2:根据消息的投递次序,从消息管理队列的队头至队尾依次将发送设备通过TCP连接所投递的消息存储至消息管理队列中。
在已投递的消息中包括第一消息,上述TCP连接为发送设备投递消息所使用的TCP连接,如发送设备与第一服务器之间建立的TCP连接。
并且,本实施例采用从队头至队尾依次存储的方式,先投递的消息先入队,便于清楚表明消息之间投递的先后次序,即消息管理队列中从队头至队尾所存储消息的投递次序是从前至后递增的,队头位置存储的消息是最先投递的,队尾位置存储的消息是最后投递的。这种方式能够用队列的头尾位置表明已投递消息的先后投递次序,无需额外维护一个关系表来记录消息的投递次序,简化了存储结构,提高了资源利用率。
3:接收到接收设备所返回的对第一消息的应答。
第一服务器接收到对第一消息的应答(如ACK应答)时,确认接收设备收到了第一消息,对第一消息的投递成功。
4:在所存储的消息中查找发送次序在所述第一消息的发送次序之前的消息。
由于采用了从队头至队尾依次存储的方式,第一服务器直接在消息管理队列中查找所述第一消息与消息管理队列的队头之间消息,并将所述第一消息与消息管理队列的队头之间消息作为所述所查找到的消息。
5:将所查找到的消息和第一消息从消息管理队列中出队。
确认所查找到的消息为投递成功的消息,主要原因如下:
由于TCP传输的可靠性和顺序性,当发送设备给接收设备发送了三条消息时,如消息1、消息2和消息3,若第一服务器在应用层只收到了接收设备对消息3的应答,而未收到对消息1和消息2的应答,则根据TCP机制在传输层没有收到消息1和消息2应答时,不会执行对消息3的传输,则可以认为消息1和2也成功送达,只是应答时间过长而应用层暂时还未接收到应答。这种情况在IM网络中极为常见,由于网络环境的不稳定,经常会发生TCP拥塞,导致消息投递与确认返回的时间过长。
按照传统的方案,上述消息1和2由于应答时间过长,超过了协议栈的消息超时时间,会被认为投递失败,从而导致对消息是否送达的感知上出现判断错误,影响消息质量,而本方案避免了这种感知错误现象的发生,能够达到的准确感知消息是否送达的技术效果。
对确认投递成功的消息不需再进行存储以进行后续的消息补偿,第一服务器通知发送设备投递成功,并通过将所查找到的消息和第一消息从消息管理队列中出队,以从所存储的消息中移除所查找到的消息和第一消息。
这种出队处理可以直接调用队列操作中的出队函数DLQUEUE(*)实现,在出队操作之后,消息管理队列更新为所述第一消息的下一消息作为队头的队列,该第一消息的下一消息为消息管理队列中所存储的紧邻第一消息的朝向队尾方向的消息。
由上可知,本实施例在收到对消息的应答时,在队列中找到该消息的位置,将该消息以及该消息之前的所有消息出列,而队列中位于该消息之后的消息继续等待应答。
进一步的,当出现接收设备从网络中注销或者发送设备与接收设备之间的TCP连接异常的情况时,会导致出现消息投递失败,本实施例中当接收到接收设备的注销请求或者监测到发送设备与接收设备之间的TCP连接出现异常时,确认相应消息管理队列中当前仍存在的消息均为投递失败的消息,将所述确认为投递失败的消息上报并存储至消息补偿服务功能,同时,通知发送设备投递失败。在上报操作成功后,可以删除已上报的消息。
本实施例利用消息补偿服务功能提供了一种消息补偿机制,对投递失败的消息集中进行管理,并将这些消息重新发送至接收设备。本实施例提供的消息补偿机制具体如下:
当存在确认为投递失败的消息时,所述消息补偿服务功能判断与接收设备之间是否存在有效TCP连接,若是,将所述投递失败的消息通过所述有效TCP连接以在线消息的方式发送给接收设备,若否,所述消息补偿服务功能在所设置的重连等待时间段内监测该消息补偿服务功能与接收设备之间的连接状态,当监测到所述消息补偿服务功能与接收设备之间存在有效TCP连接时,将所述投递失败的消息通过所述监测到的有效TCP连接发送给接收设备,当未监测到所述消息补偿服务功能与接收设备之间存在有效TCP连接时,将所述投递失败的消息以短信方式或者离线消息的方式发送给接收设备。注:在上述消息中包含了接收设备的地址信息,所以能够保证将投递失败的消息补偿发送至相应的接收设备。
本实施例中消息补偿服务功能由独立的功能模块实现,如该功能模块可以设置在独立于上述第一服务器的第二服务器上。由第二服务器实现对多条TCP连接的消息补偿。并且,本实施例通过上述重连等待时间段的设置将较好地应对在消息补偿时客户端出现断线重连的问题,提高消息补偿的效率。
例如,对于利用消息补偿服务功能将投递失败的消息再次发送至接收设备B的场景,在上述消息补偿机制下的具体处理如下:
在消息补偿服务功能收到投递失败的消息时,根据该消息获知需要发送至接收设备B,则消息补偿服务功能会首先判断接收设备B是否在线(即消息补偿服务功能是否与接收设备之间存在有效TCP连接)。由于接收设备B可能是由于网络闪断进行了客户端的断线重连,在将投递失败的消息上报至消息补偿服务的过程中,接收设备B已经完成了重连登录,接收设备B在线,则消息补偿服务功能直接将之前投递失败的消息通过该有效TCP连接以在线消息的形式发送给B。
若接收设备B未在线,则消息补偿服务功能会在内存中缓存这些之前投递失败的消息,若在重连等待时间段内(如5分钟内),接收设备B又一次登录(即建立了有效的TCP连接),则登录服务会通知消息补偿服务功能,消息补偿服务功能将内存中该用户的投递失败消息以在线消息的形式发送给接收设备B。若重连等待时间段内之内接收设备B没有成功登录,则消息补偿服务会以短信方式或者离线消息的方式将消息补偿发送给接收设备B。
进一步的,本实施例还提供了一种可疑接收设备的发现和处理机制:
由于合法的经过认证授权的接收设备都会按照TCP机制对已投递的消息不断返回应答,当长时间无法接收到来自一个接收设备的应答时,表明该接收设备可能无法支持TCP应答机制(如山寨客户端)或者出现了故障(bug),则属于可疑接收设备,具体的本实施例采用如下处理:为消息管理队列设置长度阈值,例如,该长度阈值设置为50,则当消息管理队列中存储消息所占用的队列长度大于长度阈值时,确认所述接收设备为可疑接收设备,并不再对发送设备向所述可疑接收设备所投递的消息进行存储。
本实施例不对投递至可疑接收设备的消息进行存储,不会对投递至可疑接收设备的消息进行消息补偿处理,而前期已经为可疑接收设备建立的消息管理队列也可以删除掉,以节省系统资源。并且,本实施例还会对可疑接收设备进行标记,以便于根据实际要求对可疑接收设备进行进一步的处理。
本发明实施例三还提供了一种服务器3,参见图3,所述服务器3包括消息投递的管理装置30,所述消息投递的管理装置30包括:
存储单元301,用于根据消息的投递次序,对发送设备通过传输控制协议TCP连接所投递的消息进行存储,所述消息包括第一消息;
投递管理单元302,用于在接收到接收设备所返回的对所述第一消息的应答时,在所存储的消息中查找投递次序在所述第一消息的投递次序之前的消息,确认所查找到的消息和所述第一消息投递成功,并从所存储的消息中移除所述所查找到的消息和第一消息。
进一步的,所述存储单元301,具体用于建立针对所述TCP连接的消息管理队列,并根据消息的投递次序,从消息管理队列的队头至队尾依次将发送设备通过TCP连接所投递的消息存储至消息管理队列中;
所述投递管理单元302还包括查找模块和移除模块。
上述查找模块,用于在消息管理队列中查找所述第一消息与消息管理队列的队头之间消息,并将所述第一消息与消息管理队列的队头之间消息作为所述所查找到的消息;上述移除模块,用于通过将所述所查找到的消息和第一消息从消息管理队列中出队,以从所存储的消息中移除所查找到的消息和第一消息,所述消息管理队列更新为所述第一消息的下一消息作为队头的队列。
进一步的,上述消息投递的管理装置30还包括安全管理单元,用于为消息管理队列设置长度阈值,当消息管理队列中存储消息所占用的队列长度大于长度阈值时,确认所述接收设备为可疑接收设备,并不再对发送设备向所述可疑接收设备所投递的消息进行存储。
进一步的,上述消息投递的管理装置30还包括投递失败处理单元,用于当接收到接收设备的注销请求或者监测到发送设备与接收设备之间的TCP连接出现异常时,确认相应消息管理队列中当前仍存在的消息均为投递失败的消息,将所述确认为投递失败的消息上报并存储至消息补偿服务功能。
本发明产品实施例中各单元和模块的具体工作方式可以参见本发明方法实施例。
本发明实施例四提供了一种消息投递系统,参见图4,所述系统包括第二服务器42以及根据上述本发明实施例三的第一服务器41,
所述第一服务器41,当接收到接收设备的注销请求或者监测到发送设备与接收设备之间的TCP连接出现异常时,确认相应消息管理队列中当前仍存在的消息投递失败,将所述确认为投递失败的消息上报并存储至第二服务器;
所述第二服务器42,当存在确认为投递失败的消息时,判断与接收设备之间是否存在有效TCP连接,若是,将所述投递失败的消息通过所述有效TCP连接以在线消息的方式发送给接收设备,若否,在所设置的重连等待时间段内监测第二服务器与接收设备之间的连接状态,当监测到与接收设备之间存在有效TCP连接时,将所述投递失败的消息通过所述监测到的有效TCP连接发送给接收设备,当未监测到与接收设备之间存在有效TCP连接时,将所述投递失败的消息以短信方式或者离线消息的方式发送给接收设备。
在图4中,应用服务器支持各种应用,如IM应用等,发送设备与第一服务器之间建立TCP连接,通过第一服务器登录应用服务器(或服务器集群)上的应用,接收设备也与相应的服务器建立TCP连接并通过该服务器登录应用服务器。第二服务器主要用于实现消息补偿机制,其独立于第一服务器以便于集中对网络中所有TCP连接进行消息补偿。
由上所述,本发明实施例利用TCP数据传输机制的特点,通过在收到接收设备对一个消息的应答时,确认该消息以及在该消息投递次序之前的消息都投递成功并移除这些消息的技术手段,达到了降低服务器的内存压力、准确感知消息是否送达的技术效果,从而提高了消息的质量。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210227988.6A CN103532822B (zh) 2012-07-02 2012-07-02 消息投递的管理方法、服务器和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210227988.6A CN103532822B (zh) 2012-07-02 2012-07-02 消息投递的管理方法、服务器和系统

Publications (2)

Publication Number Publication Date
CN103532822A true CN103532822A (zh) 2014-01-22
CN103532822B CN103532822B (zh) 2016-12-21

Family

ID=49934515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210227988.6A Active CN103532822B (zh) 2012-07-02 2012-07-02 消息投递的管理方法、服务器和系统

Country Status (1)

Country Link
CN (1) CN103532822B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767589A (zh) * 2015-03-12 2015-07-08 新浪网技术(中国)有限公司 一种信息发送方法及装置
CN106161189A (zh) * 2015-04-02 2016-11-23 北大方正集团有限公司 即时通信的离线通信方法及装置
CN106161190A (zh) * 2015-04-02 2016-11-23 北大方正集团有限公司 点对点即时通信方法
CN106656753A (zh) * 2016-12-08 2017-05-10 北京五八信息技术有限公司 一种im历史消息排序的方法、装置及终端
CN106790696A (zh) * 2017-02-21 2017-05-31 腾讯科技(深圳)有限公司 一种消息传输方法和装置
CN107104822A (zh) * 2017-03-29 2017-08-29 杭州云纪网络科技有限公司 服务器备灾处理方法、装置、存储介质及电子设备
CN108228363A (zh) * 2017-12-22 2018-06-29 中国银联股份有限公司 一种消息发送方法及装置
CN110134525A (zh) * 2019-03-25 2019-08-16 杭州比智科技有限公司 一种消息补偿方法及装置
CN111131392A (zh) * 2019-11-27 2020-05-08 北京文渊佳科技有限公司 处理消息的方法、装置、电子设备及介质
CN112040430A (zh) * 2020-08-31 2020-12-04 北京达佳互联信息技术有限公司 短信发送方法、装置、服务器及存储介质
CN112532681A (zh) * 2020-10-16 2021-03-19 深圳市科漫达智能管理科技有限公司 一种停车场软件数据异常处理方法及装置
CN113518029A (zh) * 2021-05-17 2021-10-19 杭州小鱼互动科技有限公司 一种功能性较强的消息投递系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459496A (zh) * 2008-12-18 2009-06-17 北京大学 一种消息的超时时间间隔的调整方法及装置
CN101778093A (zh) * 2009-01-13 2010-07-14 蒋一 基于udp协议的数据传输方法
CN102143198A (zh) * 2010-09-30 2011-08-03 华为技术有限公司 消息传送方法、装置和系统
US20120047518A1 (en) * 2005-11-25 2012-02-23 International Business Machines Corporation System for preserving message order

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120047518A1 (en) * 2005-11-25 2012-02-23 International Business Machines Corporation System for preserving message order
CN101459496A (zh) * 2008-12-18 2009-06-17 北京大学 一种消息的超时时间间隔的调整方法及装置
CN101778093A (zh) * 2009-01-13 2010-07-14 蒋一 基于udp协议的数据传输方法
CN102143198A (zh) * 2010-09-30 2011-08-03 华为技术有限公司 消息传送方法、装置和系统

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767589A (zh) * 2015-03-12 2015-07-08 新浪网技术(中国)有限公司 一种信息发送方法及装置
CN106161189A (zh) * 2015-04-02 2016-11-23 北大方正集团有限公司 即时通信的离线通信方法及装置
CN106161190A (zh) * 2015-04-02 2016-11-23 北大方正集团有限公司 点对点即时通信方法
CN106656753B (zh) * 2016-12-08 2020-02-21 北京五八信息技术有限公司 一种im历史消息排序的方法、装置及终端
CN106656753A (zh) * 2016-12-08 2017-05-10 北京五八信息技术有限公司 一种im历史消息排序的方法、装置及终端
CN106790696A (zh) * 2017-02-21 2017-05-31 腾讯科技(深圳)有限公司 一种消息传输方法和装置
CN106790696B (zh) * 2017-02-21 2020-08-07 腾讯科技(深圳)有限公司 一种消息传输方法和装置
CN107104822A (zh) * 2017-03-29 2017-08-29 杭州云纪网络科技有限公司 服务器备灾处理方法、装置、存储介质及电子设备
CN107104822B (zh) * 2017-03-29 2020-09-08 恒生电子股份有限公司 服务器备灾处理方法、装置、存储介质及电子设备
CN108228363A (zh) * 2017-12-22 2018-06-29 中国银联股份有限公司 一种消息发送方法及装置
CN110134525A (zh) * 2019-03-25 2019-08-16 杭州比智科技有限公司 一种消息补偿方法及装置
CN111131392A (zh) * 2019-11-27 2020-05-08 北京文渊佳科技有限公司 处理消息的方法、装置、电子设备及介质
CN112040430A (zh) * 2020-08-31 2020-12-04 北京达佳互联信息技术有限公司 短信发送方法、装置、服务器及存储介质
CN112040430B (zh) * 2020-08-31 2022-09-23 北京达佳互联信息技术有限公司 短信发送方法、装置、服务器及存储介质
CN112532681A (zh) * 2020-10-16 2021-03-19 深圳市科漫达智能管理科技有限公司 一种停车场软件数据异常处理方法及装置
CN113518029A (zh) * 2021-05-17 2021-10-19 杭州小鱼互动科技有限公司 一种功能性较强的消息投递系统

Also Published As

Publication number Publication date
CN103532822B (zh) 2016-12-21

Similar Documents

Publication Publication Date Title
CN103532822A (zh) 消息投递的管理方法、服务器和系统
JP4851585B2 (ja) クライアント装置と複数のサーバ装置からなるシステムの通信方法、その通信プログラム、クライアント装置及びサーバ装置
CN102171995B (zh) 服务器故障时的报文处理方法及路由器
CN106230896A (zh) 一种消息推送方法、装置及系统
CN101663868A (zh) 冗余的、地理上不同的和独立可扩展的消息服务(ms)内容存储
CN102394925B (zh) 远程监测诊断中心与地区调度中心的通讯方法及装置
US9292370B2 (en) Relay node, control method of relay node and network system
EP1708445A1 (en) Communication device and logical link abnormality detection method
CN111427711A (zh) 一种基于RabbitMQ的消息推送方法
US20120254390A1 (en) Apparatus and method for transmitting push notification message
US10834033B2 (en) Method and system for transferring messages between messaging systems
CN111970092B (zh) 一种支持可靠性调节的多协议冗余网络异步通信方法
CN107592215A (zh) 一种管理消息中间件的方法
CN113765976A (zh) 一种通信方法和系统
CN109587822B (zh) 信息发送控制方法、信息接收控制方法、装置、存储介质
CN102647365A (zh) 处理消息及消息状态的方法、装置和数据交换服务器
CN105591720A (zh) 一种大容量高速度的北斗数据传输的方法及系统
JP4767336B2 (ja) メールサーバシステム及び輻輳制御方法
CN101741747B (zh) 面向udp协议的nfs流控方法
CN101207617A (zh) 网络储存系统的数据传输方法
CN101800677B (zh) 一种双向转发检测报文的处理装置及方法
CN101977396B (zh) 多媒体消息业务中实现网元业务切换的系统及方法
CN102904764B (zh) 一种数据传输装置及其传输方法
CN107623645B (zh) 一种基于数据流转发的电力系统实时数据交换系统
JP2008294691A (ja) マルチキャスト通信方法、通信システム、通信プログラムおよびプログラム記録媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: Room 818, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080

Patentee after: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd.

Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building 6 storey block A Room 601

Patentee before: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd.