CN102223381A - 一种消息推送方法、服务器、客户端及系统 - Google Patents
一种消息推送方法、服务器、客户端及系统 Download PDFInfo
- Publication number
- CN102223381A CN102223381A CN2011101902381A CN201110190238A CN102223381A CN 102223381 A CN102223381 A CN 102223381A CN 2011101902381 A CN2011101902381 A CN 2011101902381A CN 201110190238 A CN201110190238 A CN 201110190238A CN 102223381 A CN102223381 A CN 102223381A
- Authority
- CN
- China
- Prior art keywords
- server
- push
- client
- message
- health
- 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
- Computer And Data Communications (AREA)
Abstract
本发明提供一种消息推送方法、服务器、客户端及系统,其中方法包括:健康检查服务器根据客户端的连接请求与所述客户端建立连接,若连接成功,则健康检查服务器接收客户端发送的健康检查请求消息,健康检查服务器根据健康检查请求消息发送一测试消息给第一推送服务器,若客户端收到第一推送服务器根据测试消息返回的反馈测试消息,则客户端通过第一推送服务器接收业务服务器发送的推送消息,否则客户端通过第二推送服务器接收业务服务器发送的推送消息;若连接不成功,则通过第二推送服务器接收业务服务器发送的推送消息。本发明的方案可以降低推送服务器的负载压力。
Description
技术领域
本发明涉及消息传送技术,特别是指一种消息推送方法、服务器、客户端及系统。
背景技术
如图1所示,现有的消息推送方法包括:
(1)客户端到推送服务器绑定推送服务。
(2)推送服务器给客户端返回Client ID,推送服务器会使用Client ID来标识客户端。
(3)客户端登录业务服务器,同时更新推送服务器的Client ID与推送服务用户的绑定关系。客户端需要在每次Client ID和推送服务用户的绑定关系发生变化后登录业务服务器来更新Client ID,以保证消息的及时正确推送。
(4)业务服务器有消息需要发送客户端时,将此消息投递到推送服务器,由推送服务器将消息推送至客户端。
由于客户端连接数较多或者消息推送量较多,从而容易导致推送服务器负载较大。
发明内容
本发明要解决的技术问题是提供一种消息推送方法、服务器、客户端及系统,避免了推送服务器负载较大而出现崩溃现象。
为解决上述技术问题,本发明的实施例提供一种消息推送方法,包括:
健康检查服务器根据客户端的连接请求与所述客户端建立连接,若连接成功,则所述健康检查服务器接收所述客户端发送的健康检查请求消息,并根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息,否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;
若连接不成功,则所述客户端通过所述第二推送服务器接收所述业务服务器发送的推送消息。
其中,所述健康检查服务器接收所述客户端发送的健康检查请求消息的步骤包括:所述健康检查服务器根据所述客户端的连接请求向所述客户端发送初始化信息;
所述健康检查服务器接收所述客户端根据初始化信息发送的健康检查请求消息;
其中,所述初始化信息包括:所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔,以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。
其中,所述健康检查服务器监控到所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息后,增大所述客户端获取初始化信息的轮询时间间隔以及所述客户端发送健康检查请求消息的轮询时间间隔;否则减小所述客户端获取初始化信息的轮询时间间隔和/或所述客户端发送健康检查请求消息的轮询时间间隔。
所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息后还包括:所述客户端忽略所述反馈测试消息。
其中,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息的步骤包括:
若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端向所述第一推送服务器发送绑定推送服务请求,并接收所述第一推送服务器返回的第一客户端标识信息;
所述客户端向业务服务器发送所述第一客户端标识信息;
所述客户端接收所述业务服务器根据所述第一客户端标识信息通过所述第一推送服务器发送的推送消息。
其中,所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息的步骤包括:
所述客户端向所述第二推送服务器发送绑定推送服务请求,并接收所述第二推送服务器返回的第二客户端标识信息;
所述客户端向业务服务器发送所述第二客户端标识信息;
所述客户端接收所述业务服务器根据所述第二客户端标识信息通过所述第二推送服务器发送的推送消息。
其中,所述客户端在与所述第一推送服务器连接之前已与所述第二推送服务器连接时,所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息后,还包括:断开与所述第二推送服务器的连接。
其中,所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息后,还包括:所述客户端根据所述推送消息到业务服务器上获取消息内容。
其中,所述客户端根据所述推送消息到业务服务器上获取消息内容后,还包括:设置所述推送消息对应的消息内容为空。
本发明的实施例还提供一种服务器,包括:
连接模块,用于根据客户端的连接请求与所述客户端建立连接;
第一处理模块,用于在所述连接模块与所述客户端连接成功时,接收所述客户端发送的健康检查请求消息,根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;
第二处理模块,用于在所述连接模块与所述客户端连接不成功时,则使所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息。
其中,所述第一处理模块接收所述客户端发送的健康检查请求消息时,具体根据所述客户端的连接请求向所述客户端发送初始化信息,并接收所述客户端根据初始化信息发送的健康检查请求消息;
其中,所述初始化信息包括:所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔,以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。
本发明的实施例还提供一种客户端,包括:
连接模块,用于向健康检查服务器发送连接请求;
健康检查定时器模块,用于在所述连接模块与所述健康检查服务器连接成功时,向所述健康检查服务器发送健康检查请求消息,使所述健康检查服务器根据所述健康检查请求消息发送一测试消息给第一推送服务器;
接收模块,用于在收到所述第一推送服务器根据所述测试消息返回的反馈测试消息时,通过所述第一推送服务器接收业务服务器发送的推送消息;否则通过第二推送服务器接收业务服务器发送的推送消息;或者在所述连接模块与所述健康检查服务器连接不成功,通过所述第二推送服务器接收业务服务器发送的推送消息。
上述客户端还包括:控制定时器模块,用于在所述连接模块与所述健康检查服务器连接成功时,获取所述健康检查服务器根据所述连接请求返回的初始化信息;
所述健康检查定时器模块根据所述初始化信息向所述健康检查服务器发送健康检查请求消息;
其中,所述初始化信息包括:所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔,以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。
本发明的实施例还提供一种消息推送系统,包括:健康检查服务器,第一推送服务器和第二推送服务器,其中,
健康检查服务器用于根据客户端的连接请求与所述客户端建立连接,在与所述客户端连接成功时,接收所述客户端发送的健康检查请求消息,根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;
所述健康检查服务器与所述客户端连接不成功时,则使所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息。
本发明的上述技术方案的有益效果如下:
上述方案中,通过加入一健康检查服务器和第二推送服务器,在该健康检查服务器与客户端连接成功时,接收所述客户端发送的健康检查请求消息,所述健康检查服务器根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息;在该健康检查服务器与客户端连接不成功时,所述客户端直接通过所述第二推送服务器接收所述业务服务器发送的推送消息;也就是说:通过客户端调用健康检查服务器来发送测试消息给第一推送服务器,从客户端是否能收到所述测试消息的反馈测试消息来判断第一推送服务器的健康状况,在第一推送服务器健康状况不佳时,及时启用第二推送服务器,使第一推送服务器的负载得到有效降低,避免了推送服务器负载较大而出现崩溃现象。
附图说明
图1为现有的消息推送方法流程图;
图2为本发明的消息推送方法所应用的系统架构图;
图3为本发明的消息推送方法实施例流程图;
图4为本发明的消息推送方法的一具体实现实例流程图;
图5为本发明的服务器的结构示意图;
图6为本发明的客户端的结构示意图;
图7为本发明的消息推送系统架构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有技术中,由于客户端连接数较多或者消息推送量较多,从而容易导致推送服务器负载较大问题,提供一种消息推送方法、服务器、客户端及系统,避免了推送服务器负载较大而出现崩溃现象。
如图2、图3所示,本发明的消息推送方法,包括:
健康检查服务器根据客户端的连接请求与所述客户端建立连接,若连接成功,则所述健康检查服务器接收所述客户端发送的健康检查请求消息,并根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;
若连接不成功,则所述客户端通过所述第二推送服务器接收所述业务服务器发送的推送消息。
本发明的上述方案通过加入一健康检查服务器和第二推送服务器,通过客户端调用健康检查服务器来发送测试消息给第一推送服务器,从客户端是否能收到所述测试消息来判断第一推送服务器的健康状况,在第一推送服务器健康状况不佳时,及时启用第二推送服务器,使第一推送服务器的负载得到有效降低,避免了推送服务器负载较大而出现崩溃现象。
上述实施例中,健康检查服务器接收客户端发送的健康检查请求消息的步骤包括:所述健康检查服务器根据所述客户端的连接请求向所述客户端发送初始化信息;
所述健康检查服务器接收所述客户端根据初始化信息发送的健康检查请求消息;
其中,所述初始化信息包括:所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔,以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。
进一步的,上述实施例中,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息的步骤包括:
若所述客户端收到所述第一推送服务器返回的反馈测试消息,则所述客户端向所述第一推送服务器发送绑定推送服务请求,并接收所述第一推送服务器返回的第一客户端标识信息(即,第一推送服务器返回的Client ID);
所述客户端向业务服务器发送所述第一客户端标识信息;
所述客户端接收业务服务器根据所述第一客户端标识信息通过所述第一推送服务器发送的推送消息。
另外,所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息的步骤包括:
所述客户端向所述第二推送服务器发送绑定推送服务请求,并接收所述第二推送服务器返回的第二客户端标识信息(即第二推送服务器返回的Client ID);
所述客户端向业务服务器发送所述第二客户端标识信息;
所述客户端接收,所述业务服务器根据所述第二客户端标识信息通过所述第二推送服务器发送的推送消息。
也就是说,当业务服务器产生新的推送消息时,通过判断其中的Client ID是否存在来决定推送消息投递给哪个推送服务器;客户端连接第一推送服务器和/或第二推送服务器去获取Client ID,客户端获取Client ID后,连接到业务服务器更新Client ID;
例如:当存在第一推送服务器的Client ID时,业务服务器将推送消息投递给第一推送服务器,第一推送服务器再将推送消息推送至客户端;当存在第二推送服务器的Client ID时,业务服务器将推送消息投递给第二推送服务器,第二推送服务器再将推送消息推送至客户端;当第一推送服务器和第二推送服务器的Client ID都存在时,业务服务器将推送消息投递给第一推送服务器和第二推送服务器,第一推送服务器和第二推送服务器均会将推送消息推送至客户端,此时,优先方案为:若第一推送服务器和第二推送服务器将同一消息重复推送给了客户端,客户端在收到第一个推送消息后,根据消息的ID地址到业务服务器获取消息内容,客户端在收到第二个推送消息后,再到业务服务器上同样的ID地址获取消息内容时,此消息内容已被取走,即客户端根据所述推送消息到所述业务服务器上获取消息内容后,业务服务器将该推送消息对应的消息内容设置为空,这样就避免了同样的消息内容重复传输的情况(客户端是收到了两个推送消息,但收到推送消息对于客户端是透明的,客户端只知道收到了一个消息内容)。
本发明的上述方案通过在服务器端:加入了健康检查服务器,用于监控第一推送服务器和第二推送服务器的健康状况(负载能力),和提供客户端所需的初始化信息,该初始化信息包括:1、客户端是能否直接使用第一推送服务器或第二推送服务器;2、客户端获取初始化信息的轮询时间间隔;3、客户端发送健康检查请求的轮询时间间隔;4、判断第一推送服务器或第二推送服务器健康与否的超时时间等。
若健康检查服务器监控到所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息后,可以增大所述客户端获取初始化信息的轮询时间间隔以及所述客户端发送健康检查请求消息的轮询时间间隔,可以减轻客户端与健康检查服务器的负担;否则减小所述客户端获取初始化信息的轮询时间间隔和/或所述客户端发送健康检查请求消息的轮询时间间隔。
所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息后还包括:所述客户端忽略该反馈测试消息。
另外,在收到客户端的健康查测请求后,投递测试消息到第一推送服务器或第二推送服务器,健康检查服务器监控第一推送服务器的形式包括:包括网络连接数,内存使用情况,cpu使用情况,磁盘使用情况。
下面结合图4说明上述方法的具体实现实例:
以第一推送服务器为主推送服务器,第二推送服务器作为备用推送服务器为例:
1、客户端连接健康检查服务器;
2、如未能连接上,则客户端直接连接第二推送服务器,绑定推送关系,获取第二推送服务器返回的Client ID,到业务服务器更新Client ID。同时,客户端默认配置了与健康检查服务器连接并获取初始化信息的轮询机制,即客户端与第二推送服务器正常使用时,客户端仍然尝试轮询地连接健康查检服务器,直到连接成功。
2、如连接上,则健康检查服务器反馈初始化信息给客户端,告知客户端第一推送服务器能否使用,如果第一推送服务器能够使用,则客户端连接第一推送服务器,绑定推送关系,获取Client ID,到业务服务器更新Client ID,客户端根据初始化信息,轮询发送健康检查请求到健康检查服务器,检健康检查服务器投递测试消息到第一推送服务器,第一推送服务器将测试消息的反馈测试消息推送到客户端;
2.1客户端如果收到此反馈测试消息,则证明第一推送服务器可用,如果此时客户端已与第二推送服务器建立连接,则断开客户端与第二推送服务器的连接,并且客户端在收到此反馈测试消息时,忽略此反馈测试消息(此反馈测试消息对客户端而言是透明的)。
2.2客户端如果未收到此测试消息(或多次未收到),则证明第一推送服务器不可用,则客户端连接第二推送服务器,绑定推送关系,获取Client ID,到业务服务器更新Client ID。同时,客户端根据初始化信息,继续轮询发送健康检查请求到健康检查服务器,直到收到客户端收到第一推送服务器发来的测试消息后断开第二推送服务器的连接为止。
另外:健康检查服务器根据实时监控到的第一推送服务器的压力,可以动态调整初始化信息,如第一推送服务器压力较小,则可以增大客户端的获取初始化信息和/或发送健康检查请求的轮询间隔,同样,如第一推送服务器压力较大,则可以减小客户端的获取初始化信息和/或发送健康检查请求的轮询间隔。
本发明的上述方法通过一健康检查服务器对第一推送服务器和第二推送服务器的健康状态进行判断,并通知客户端选择其中一个健康的推送服务器进行推送消息,相比于传统的只有一个推送服务器的方案,减轻了推送服务器的负载压力,相比于简单的一个推送服务器的方案,采用多个推送服务器,并动态地监控了多个推送服务器的健康状况,使得客户端可以灵活的选择健康的推送服务器进行推送消息,保证了推送消息的推送效率。
如图5所示,本发明的实施例还提供一种服务器51,如上述的健康检查服务器,该服务器包括:
连接模块,用于根据客户端的连接请求与所述客户端建立连接;
第一处理模块,用于在所述连接模块与所述客户端连接成功时,接收所述客户端发送的健康检查请求消息,根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;
第二处理模块,用于在所述连接模块与所述客户端连接不成功时,则使所述客户端通过所述第二推送服务器接收所述业务服务器发送的推送消息。
其中,所述第一处理模块接收所述客户端发送的健康检查请求消息时,具体根据所述客户端的连接请求向所述客户端发送初始化信息,并接收所述客户端根据初始化信息发送的健康检查请求消息;
其中,所述初始化信息包括:所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔,以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。
具体来说,健康检查服务器,用于监控第一推送服务器和第二推送服务器的健康状况(负载能力),和提供客户端所需的初始化信息。
健康检查服务器监控第一推送服务器的形式包括:包括网络连接数,内存使用情况,cpu使用情况,磁盘使用情况。
另外,上述健康检查服务器对第一推送服务器和第二推送服务器的健康状态进行判断,根据实时监控到的第一推送服务器的压力,可以动态调整初始化信息,如第一推送服务器压力较小,则可以增大客户端的获取初始化信息和/或发送健康检查请求的轮询间隔,同样,如第一推送服务器压力较大,则可以减小客户端的获取初始化信息和/或发送健康检查请求的轮询间隔。
该实施例通过健康检查服务器对第一推送服务器和第二推送服务器的健康状态进行判断,并通知客户端选择其中一个健康的推送服务器进行推送消息,相比于传统的只有一个推送服务器的方案,减轻了推送服务器的负载压力,相比于简单的一个推送服务器的方案,采用多个推送服务器,并动态地监控了多个推送服务器的健康状况,使得客户端可以灵活的选择健康的推送服务器进行推送消息,保证了推送消息的推送效率。
如图6、图3所示,本发明的实施例还提供一种客户端61,包括:
连接模块,用于向健康检查服务器发送连接请求;
健康检查定时器模块,用于在连接模块与所述健康检查服务器连接成功时,向所述健康检查服务器发送健康检查请求消息,使所述健康检查服务器根据所述健康检查请求消息发送一测试消息给第一推送服务器;
接收模块,用于在收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则通过所述第一推送服务器接收业务服务器发送的推送消息;否则通过第二推送服务器接收业务服务器发送的推送消息;或者在所述连接模块与所述健康检查服务器连接不成功,通过所述第二推送服务器接收所述业务服务器发送的推送消息。
该客户端还包括:控制定时器模块,用于在连接模块与所述健康检查服务器连接成功时,获取所述健康检查服务器根据所述连接请求返回的初始化信息;
所述健康检查定时器模块根据所述初始化信息向所述健康检查服务器发送健康检查请求消息;
其中,所述初始化信息包括:所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。
客户端:加入了健康检查定时器模块和控制定时器模块,用于从健康检查服务器获取推送服务器的健康状况,并作出相应选择。
其中,控制定时器模块:用于连接到健康检查服务器,获取初始化信息。
初始化信息包括:1、客户端是能否直接使用第一推送服务器或第二推送服务器;2、控制定时器获取初始化信息的轮询时间间隔;3、健康检查定时器发送健康检查请求的轮询时间间隔;4、健康检查定时器判断第一推送服务器或第二推送服务器健康与否的超时时间
健康检查定时器模块具体用于发送HTTP的健康检查请求到健康检查服务器。
如图7所示,本发明的实施例还提供一种消息推送系统,包括:健康检查服务器,第一推送服务器和第二推送服务器,其中,
健康检查服务器,用于根据客户端的连接请求与所述客户端建立连接,在与所述客户端连接成功时,接收所述客户端发送的健康检查请求消息,根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;
在与所述客户端连接不成功时,则使所述客户端通过所述第二推送服务器接收所述业务服务器发送的推送消息。
进一步的,上述图2-图6中所示的健康检查服务器和客户端的所有实现方式均适用于本系统实施例中,也能达到相同的技术效果,在此不再赘述。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种消息推送方法,其特征在于,包括:
健康检查服务器根据客户端的连接请求与所述客户端建立连接,若连接成功,则所述健康检查服务器接收所述客户端发送的健康检查请求消息,并根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息,否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;
若连接不成功,则所述客户端通过所述第二推送服务器接收所述业务服务器发送的推送消息。
2.根据权利要求1所述的消息推送方法,其特征在于,所述健康检查服务器接收所述客户端发送的健康检查请求消息的步骤包括:
所述健康检查服务器根据所述客户端的连接请求向所述客户端发送初始化信息;
所述健康检查服务器接收所述客户端根据初始化信息发送的健康检查请求消息;
其中,所述初始化信息包括:所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔,以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。
3.根据权利要求2所述的消息推送方法,其特征在于,所述健康检查服务器监控到所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息后,增大所述客户端获取初始化信息的轮询时间间隔和/或所述客户端发送健康检查请求消息的轮询时间间隔;否则减小所述客户端获取初始化信息的轮询时间间隔和/或所述客户端发送健康检查请求消息的轮询时间间隔。
4.根据权利要求1或2或3所述的消息推送方法,其特征在于,所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息后还包括:所述客户端忽略所述反馈测试消息。
5.根据权利要求1所述的消息推送方法,其特征在于,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息的步骤包括:
若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端向所述第一推送服务器发送绑定推送服务请求,并接收所述第一推送服务器返回的第一客户端标识信息;
所述客户端向业务服务器发送所述第一客户端标识信息;
所述客户端接收所述业务服务器根据所述第一客户端标识信息通过所述第一推送服务器发送的推送消息。
6.根据权利要求1所述的消息推送方法,其特征在于,所述客户端通过第二推送服务器接收业务服务器发送的推送消息的步骤包括:
所述客户端向所述第二推送服务器发送绑定推送服务请求,并接收所述第二推送服务器返回的第二客户端标识信息;
所述客户端向业务服务器发送所述第二客户端标识信息;
所述客户端接收所述业务服务器根据所述第二客户端标识信息通过所述第二推送服务器发送的推送消息。
7.根据权利要求1或2或3所述的消息推送方法,其特征在于,所述客户端在与所述第一推送服务器连接之前已与所述第二推送服务器连接时,所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息后,还包括:
断开与所述第二推送服务器的连接。
8.根据权利要求1或2或3所述的消息推送方法,其特征在于,所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息后,还包括:
所述客户端根据所述推送消息到业务服务器上获取消息内容。
9.根据权利要求8所述的消息推送方法,其特征在于,所述客户端根据所述推送消息到业务服务器上获取消息内容后,还包括:
设置所述推送消息对应的消息内容为空。
10.一种服务器,其特征在于,包括:
连接模块,用于根据客户端的连接请求与所述客户端建立连接;
第一处理模块,用于在所述连接模块与所述客户端连接成功时,接收所述客户端发送的健康检查请求消息,根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;
第二处理模块,用于在所述连接模块与所述客户端连接不成功时,则使所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息。
11.根据权利要求10所述的服务器,其特征在于,所述第一处理模块接收所述客户端发送的健康检查请求消息时,具体根据所述客户端的连接请求向所述客户端发送初始化信息,并接收所述客户端根据初始化信息发送的健康检查请求消息;
其中,所述初始化信息包括:所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔,以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。
12.一种客户端,其特征在于,包括:
连接模块,用于向健康检查服务器发送连接请求;
健康检查定时器模块,用于在所述连接模块与所述健康检查服务器连接成功时,向所述健康检查服务器发送健康检查请求消息,使所述健康检查服务器根据所述健康检查请求消息发送一测试消息给第一推送服务器;
接收模块,用于在收到所述第一推送服务器根据所述测试消息返回的反馈测试消息时,通过所述第一推送服务器接收业务服务器发送的推送消息;否则通过第二推送服务器接收业务服务器发送的推送消息;或者在所述连接模块与所述健康检查服务器连接不成功时,通过所述第二推送服务器接收业务服务器发送的推送消息。
13.根据权利要求12所述的客户端,其特征在于,还包括:
控制定时器模块,用于在所述连接模块与所述健康检查服务器连接成功时,获取所述健康检查服务器根据所述连接请求返回的初始化信息;
所述健康检查定时器模块根据所述初始化信息向所述健康检查服务器发送健康检查请求消息;
其中,所述初始化信息包括:所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔,以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。
14.一种消息推送系统,其特征在于,包括:健康检查服务器,第一推送服务器和第二推送服务器,其中,
健康检查服务器用于根据客户端的连接请求与所述客户端建立连接,在与所述客户端连接成功时,接收所述客户端发送的健康检查请求消息,根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;
所述健康检查服务器与所述客户端连接不成功时,则使所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101902381A CN102223381A (zh) | 2011-07-07 | 2011-07-07 | 一种消息推送方法、服务器、客户端及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101902381A CN102223381A (zh) | 2011-07-07 | 2011-07-07 | 一种消息推送方法、服务器、客户端及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102223381A true CN102223381A (zh) | 2011-10-19 |
Family
ID=44779809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101902381A Pending CN102223381A (zh) | 2011-07-07 | 2011-07-07 | 一种消息推送方法、服务器、客户端及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102223381A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104601668A (zh) * | 2014-12-24 | 2015-05-06 | 北京京东尚科信息技术有限公司 | 基于状态管理的数据推送方法、装置和系统 |
CN104660482A (zh) * | 2013-11-20 | 2015-05-27 | 中兴通讯股份有限公司 | 一种社交网络信息推送方法及装置 |
CN104852991A (zh) * | 2015-06-01 | 2015-08-19 | 上海雷腾软件股份有限公司 | 分布式推送服务器系统及应用该系统的数据推送方法 |
CN105306383A (zh) * | 2014-06-10 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 一种消息的推送方法和终端以及推送服务器 |
CN105743952A (zh) * | 2014-12-12 | 2016-07-06 | 金蝶软件(中国)有限公司 | 一种业务处理方法、服务器以及erp客户端 |
CN105989065A (zh) * | 2015-02-09 | 2016-10-05 | 苏宁云商集团股份有限公司 | 一种闪拍数据处理方法及系统 |
CN106331058A (zh) * | 2016-08-12 | 2017-01-11 | 东软集团股份有限公司 | 消息传输方法和装置 |
CN106686040A (zh) * | 2015-11-10 | 2017-05-17 | 阿里巴巴集团控股有限公司 | 一种报文处理方法和装置 |
CN107734072A (zh) * | 2017-11-27 | 2018-02-23 | 北京小米移动软件有限公司 | 推送信息的处理方法及装置 |
CN109597725A (zh) * | 2018-10-26 | 2019-04-09 | 深圳壹账通智能科技有限公司 | 用户消息中心转存功能的测试方法、装置、介质和设备 |
CN110380967A (zh) * | 2019-04-17 | 2019-10-25 | 武汉初心科技有限公司 | 一种基于sse技术的服务器推送消息方法 |
CN111049723A (zh) * | 2018-10-15 | 2020-04-21 | 广州虎牙信息科技有限公司 | 消息推送方法、消息管理系统、服务器及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227428A (zh) * | 2008-01-30 | 2008-07-23 | 中兴通讯股份有限公司 | 一种应用服务器及其远程控制方法 |
WO2010042733A1 (en) * | 2008-10-08 | 2010-04-15 | Citrix Systems, Inc. | Systems and methods for connection management for asynchronous messaging over http |
CN101826081A (zh) * | 2009-03-06 | 2010-09-08 | 北京华旗资讯数码科技有限公司 | 编码控制获取网络多媒体文件的方法 |
CN101911600A (zh) * | 2007-12-28 | 2010-12-08 | 雅虎公司 | 经由任播的无地图全局流量负载均衡 |
-
2011
- 2011-07-07 CN CN2011101902381A patent/CN102223381A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101911600A (zh) * | 2007-12-28 | 2010-12-08 | 雅虎公司 | 经由任播的无地图全局流量负载均衡 |
CN101227428A (zh) * | 2008-01-30 | 2008-07-23 | 中兴通讯股份有限公司 | 一种应用服务器及其远程控制方法 |
WO2010042733A1 (en) * | 2008-10-08 | 2010-04-15 | Citrix Systems, Inc. | Systems and methods for connection management for asynchronous messaging over http |
CN101826081A (zh) * | 2009-03-06 | 2010-09-08 | 北京华旗资讯数码科技有限公司 | 编码控制获取网络多媒体文件的方法 |
Non-Patent Citations (1)
Title |
---|
陈航 等: "基于服务器推送技术和XMPP的WebIM系统实现", 《计算机工程与设计》, 31 May 2010 (2010-05-31) * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104660482A (zh) * | 2013-11-20 | 2015-05-27 | 中兴通讯股份有限公司 | 一种社交网络信息推送方法及装置 |
CN105306383B (zh) * | 2014-06-10 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种消息的推送方法和终端以及推送服务器 |
CN105306383A (zh) * | 2014-06-10 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 一种消息的推送方法和终端以及推送服务器 |
CN105743952B (zh) * | 2014-12-12 | 2019-09-17 | 金蝶软件(中国)有限公司 | 一种业务处理方法、服务器以及erp客户端 |
CN105743952A (zh) * | 2014-12-12 | 2016-07-06 | 金蝶软件(中国)有限公司 | 一种业务处理方法、服务器以及erp客户端 |
CN104601668B (zh) * | 2014-12-24 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 基于状态管理的数据推送方法、装置和系统 |
CN104601668A (zh) * | 2014-12-24 | 2015-05-06 | 北京京东尚科信息技术有限公司 | 基于状态管理的数据推送方法、装置和系统 |
CN105989065A (zh) * | 2015-02-09 | 2016-10-05 | 苏宁云商集团股份有限公司 | 一种闪拍数据处理方法及系统 |
CN105989065B (zh) * | 2015-02-09 | 2020-03-24 | 苏宁云计算有限公司 | 一种闪拍数据处理方法及系统 |
CN104852991A (zh) * | 2015-06-01 | 2015-08-19 | 上海雷腾软件股份有限公司 | 分布式推送服务器系统及应用该系统的数据推送方法 |
CN106686040A (zh) * | 2015-11-10 | 2017-05-17 | 阿里巴巴集团控股有限公司 | 一种报文处理方法和装置 |
CN106686040B (zh) * | 2015-11-10 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 一种报文处理方法和装置 |
CN106331058A (zh) * | 2016-08-12 | 2017-01-11 | 东软集团股份有限公司 | 消息传输方法和装置 |
CN107734072A (zh) * | 2017-11-27 | 2018-02-23 | 北京小米移动软件有限公司 | 推送信息的处理方法及装置 |
CN107734072B (zh) * | 2017-11-27 | 2021-04-23 | 北京小米移动软件有限公司 | 推送信息的处理方法及装置 |
CN111049723A (zh) * | 2018-10-15 | 2020-04-21 | 广州虎牙信息科技有限公司 | 消息推送方法、消息管理系统、服务器及计算机存储介质 |
CN109597725A (zh) * | 2018-10-26 | 2019-04-09 | 深圳壹账通智能科技有限公司 | 用户消息中心转存功能的测试方法、装置、介质和设备 |
CN110380967A (zh) * | 2019-04-17 | 2019-10-25 | 武汉初心科技有限公司 | 一种基于sse技术的服务器推送消息方法 |
CN110380967B (zh) * | 2019-04-17 | 2021-06-22 | 武汉初心科技有限公司 | 一种基于sse技术的服务器推送消息方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102223381A (zh) | 一种消息推送方法、服务器、客户端及系统 | |
CN103560922A (zh) | 一种容灾方法及系统 | |
CN108712501A (zh) | 信息的发送方法、装置、计算设备以及存储介质 | |
CN105306288A (zh) | WebSocket服务器监控方法及装置 | |
CN102111419B (zh) | 一种基于消息中间件的客户端自动重连方法 | |
CN103795569A (zh) | 一种基于连接池的服务器连接方法和装置 | |
CN101753597B (zh) | 对等节点-客户端架构下对等节点与客户端间保活方法 | |
US20080046574A1 (en) | Relay device and program product | |
CN102611642A (zh) | 处理异步消息的系统及其发送消息、监听处理任务的方法 | |
CN104539510B (zh) | 一种基于多协议的信息推送系统及方法 | |
CN103209392A (zh) | 一种跨进程多应用消息推送方法及装置 | |
CN103685570A (zh) | 服务器、终端和消息推送方法 | |
CN103297453A (zh) | 实现即时通讯的方法、浏览器端和系统 | |
CN107688512A (zh) | 一种优化虚拟机数据备份方法和系统 | |
CN100596123C (zh) | 一种网关系统及其消息业务处理方法 | |
CN103024058A (zh) | Web服务调用方法及系统 | |
CN102882708A (zh) | 运维审计方法、装置及系统 | |
CN109560900A (zh) | 数据发送方法和装置 | |
CN105515936A (zh) | 消息通信的方法、服务器和系统 | |
CN112839106A (zh) | 通信方法及装置、电子设备及介质 | |
CN110365802B (zh) | 一种消息传输方法、消息转发设备及存储介质 | |
CN108306815A (zh) | 一种获取消息的方法、装置、设备及计算机可读存储介质 | |
CN101977396A (zh) | 多媒体消息业务中实现网元业务切换的系统及方法 | |
CN103746842A (zh) | 一种检测线卡故障重起的方法及系统 | |
CN114884805B (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: 20111019 |