一种消息推送方法、服务器、客户端及系统的制作方法

文档序号:7719130阅读:67来源:国知局
专利名称:一种消息推送方法、服务器、客户端及系统的制作方法
技术领域
本发明涉及消息传送技术,特别是指一种消息推送方法、服务器、客户端及系统。
背景技术
如图1所示,现有的消息推送方法包括(1)客户端到推送服务器绑定推送服务。(2)推送服务器给客户端返回Client ID,推送服务器会使用Client ID来标识客户端。(3)客户端登录业务服务器,同时更新推送服务器的Client ID与推送服务用户的绑定关系。客户端需要在每次Client ID和推送服务用户的绑定关系发生变化后登录业务服务器来更新Client ID,以保证消息的及时正确推送。(4)业务服务器有消息需要发送客户端时,将此消息投递到推送服务器,由推送服务器将消息推送至客户端。由于客户端连接数较多或者消息推送量较多,从而容易导致推送服务器负载较大。

发明内容
本发明要解决的技术问题是提供一种消息推送方法、服务器、客户端及系统,避免了推送服务器负载较大而出现崩溃现象。为解决上述技术问题,本发明的实施例提供一种消息推送方法,包括健康检查服务器根据客户端的连接请求与所述客户端建立连接,若连接成功,则所述健康检查服务器接收所述客户端发送的健康检查请求消息,并根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息,否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;若连接不成功,则所述客户端通过所述第二推送服务器接收所述业务服务器发送的推送消息。其中,所述健康检查服务器接收所述客户端发送的健康检查请求消息的步骤包括所述健康检查服务器根据所述客户端的连接请求向所述客户端发送初始化信息;所述健康检查服务器接收所述客户端根据初始化信息发送的健康检查请求消息;其中,所述初始化信息包括所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔,以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。其中,所述健康检查服务器监控到所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息后,增大所述客户端获取初始化信息的轮询时间间隔以及所述客户端发送健康检查请求消息的轮询时间间隔;否则减小所述客户端获取初始化信息的轮询时间间隔和/或所述客户端发送健康检查请求消息的轮询时间间隔。所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息后还包括所述客户端忽略所述反馈测试消息。其中,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息的步骤包括若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息, 则所述客户端向所述第一推送服务器发送绑定推送服务请求,并接收所述第一推送服务器返回的第一客户端标识信息;所述客户端向业务服务器发送所述第一客户端标识信息;所述客户端接收所述业务服务器根据所述第一客户端标识信息通过所述第一推送服务器发送的推送消息。其中,所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息的步骤包括所述客户端向所述第二推送服务器发送绑定推送服务请求,并接收所述第二推送服务器返回的第二客户端标识信息;所述客户端向业务服务器发送所述第二客户端标识信息;所述客户端接收所述业务服务器根据所述第二客户端标识信息通过所述第二推送服务器发送的推送消息。其中,所述客户端在与所述第一推送服务器连接之前已与所述第二推送服务器连接时,所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息后,还包括断开与所述第二推送服务器的连接。其中,所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息后, 还包括所述客户端根据所述推送消息到业务服务器上获取消息内容。其中,所述客户端根据所述推送消息到业务服务器上获取消息内容后,还包括设置所述推送消息对应的消息内容为空。本发明的实施例还提供一种服务器,包括连接模块,用于根据客户端的连接请求与所述客户端建立连接;第一处理模块,用于在所述连接模块与所述客户端连接成功时,接收所述客户端发送的健康检查请求消息,根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;第二处理模块,用于在所述连接模块与所述客户端连接不成功时,则使所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息。其中,所述第一处理模块接收所述客户端发送的健康检查请求消息时,具体根据所述客户端的连接请求向所述客户端发送初始化信息,并接收所述客户端根据初始化信息
6发送的健康检查请求消息;其中,所述初始化信息包括所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔,以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。本发明的实施例还提供一种客户端,包括连接模块,用于向健康检查服务器发送连接请求;健康检查定时器模块,用于在所述连接模块与所述健康检查服务器连接成功时, 向所述健康检查服务器发送健康检查请求消息,使所述健康检查服务器根据所述健康检查请求消息发送一测试消息给第一推送服务器;接收模块,用于在收到所述第一推送服务器根据所述测试消息返回的反馈测试消息时,通过所述第一推送服务器接收业务服务器发送的推送消息;否则通过第二推送服务器接收业务服务器发送的推送消息;或者在所述连接模块与所述健康检查服务器连接不成功,通过所述第二推送服务器接收业务服务器发送的推送消息。上述客户端还包括控制定时器模块,用于在所述连接模块与所述健康检查服务器连接成功时,获取所述健康检查服务器根据所述连接请求返回的初始化信息;所述健康检查定时器模块根据所述初始化信息向所述健康检查服务器发送健康检查请求消息;其中,所述初始化信息包括所述客户端能否直接连接所述第一推送服务器或者所述第二推送服务器,所述客户端获取初始化信息的轮询时间间隔,所述客户端发送健康检查请求消息的轮询时间间隔,以及所述第一推送服务器或者所述第二推送服务器健康与否的超时时间。本发明的实施例还提供一种消息推送系统,包括健康检查服务器,第一推送服务器和第二推送服务器,其中,健康检查服务器用于根据客户端的连接请求与所述客户端建立连接,在与所述客户端连接成功时,接收所述客户端发送的健康检查请求消息,根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;所述健康检查服务器与所述客户端连接不成功时,则使所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息。本发明的上述技术方案的有益效果如下上述方案中,通过加入一健康检查服务器和第二推送服务器,在该健康检查服务器与客户端连接成功时,接收所述客户端发送的健康检查请求消息,所述健康检查服务器根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息;在该健康检查服务器与客户端连接不成功时,所述客户端直接通过所述第二推送服务器接收所述业务服务器发送的推送消息;也就是说通过客户端调用
7健康检查服务器来发送测试消息给第一推送服务器,从客户端是否能收到所述测试消息的反馈测试消息来判断第一推送服务器的健康状况,在第一推送服务器健康状况不佳时,及时启用第二推送服务器,使第一推送服务器的负载得到有效降低,避免了推送服务器负载较大而出现崩溃现象。


图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中所示的健康检查服务器和客户端的所有实现方式均适用于本系统实施例中,也能达到相同的技术效果,在此不再赘述。以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
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. 一种消息推送系统,其特征在于,包括健康检查服务器,第一推送服务器和第二推送服务器,其中,健康检查服务器用于根据客户端的连接请求与所述客户端建立连接,在与所述客户端连接成功时,接收所述客户端发送的健康检查请求消息,根据所述健康检查请求消息发送一测试消息给第一推送服务器,若所述客户端收到所述第一推送服务器根据所述测试消息返回的反馈测试消息,则所述客户端通过所述第一推送服务器接收业务服务器发送的推送消息;否则所述客户端通过第二推送服务器接收业务服务器发送的推送消息;所述健康检查服务器与所述客户端连接不成功时,则使所述客户端通过所述第二推送服务器接收业务服务器发送的推送消息。
全文摘要
本发明提供一种消息推送方法、服务器、客户端及系统,其中方法包括健康检查服务器根据客户端的连接请求与所述客户端建立连接,若连接成功,则健康检查服务器接收客户端发送的健康检查请求消息,健康检查服务器根据健康检查请求消息发送一测试消息给第一推送服务器,若客户端收到第一推送服务器根据测试消息返回的反馈测试消息,则客户端通过第一推送服务器接收业务服务器发送的推送消息,否则客户端通过第二推送服务器接收业务服务器发送的推送消息;若连接不成功,则通过第二推送服务器接收业务服务器发送的推送消息。本发明的方案可以降低推送服务器的负载压力。
文档编号H04L29/08GK102223381SQ201110190238
公开日2011年10月19日 申请日期2011年7月7日 优先权日2011年7月7日
发明者丁瑞彭, 李松, 赵亮 申请人:莫雅静
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1