消息推送方法、装置和系统的制作方法

文档序号:9263322阅读:472来源:国知局
消息推送方法、装置和系统的制作方法
【技术领域】
[0001]本申请涉及互联网技术领域,特别涉及一种消息推送方法、装置和系统。
【背景技术】
[0002]虽然服务器推送技术很早就已经出现,但是由于之前的浏览器技术水平难以有效支持服务器推送技术,因此服务器推送技术并未广泛应用。随着AJAX技术(AsynchronousJava script and XML,—种创建交互式网页应用的网页开发技术)的发展和普及,浏览器可通过异步传输数据的方式实现网页的局部更新,解决了 IE的加载显示问题。这为服务器推送技术提供了很好的技术支持,因此服务器推送技术已逐步应用在各个领域。例如,股票交易行情分析、聊天室和网页版在线游戏等均可通过服务器推送技术来实现。
[0003]通过AJAX技术实现服务器推送时,服务器端会阻塞请求直到有数据传递或超时才返回至客户端,并断开连接;客户端的JavaScript响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接;当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达,这些信息会被服务器端保存直到客户端重新建立连接,客户端会一次把当前服务器端所有的信息取回。但是,由于重新建立连接需要耗费一定的时间,因此在不断的消息推送过程中会因不断的断开-重新建立连接浪费大量时间。此外,由于受到服务器端单机HTTP请求的处理能力的限制,当HTTP请求量较大时,例如超过10万级别以上时,难以通过单台服务器完成请求的处理,需要通过大批量部署分布式及其集群服务器的方式处理,部署成本高,且易造成资料浪费。

【发明内容】

[0004]本申请旨在至少在一定程度上解决上述技术问题。
[0005]为此,本申请的第一个目的在于提出一种消息推送方法,该方法节省了消息推送时间,减少了应用服务器的请求处理数量,减小了应用服务器的压力,从而有效降低了集群服务器的数量,节约成本和资源。
[0006]本申请的第二个目的在于提出一种消息推送装置。
[0007]本申请的第三个目的在于提出一种消息推送系统。
[0008]为达上述目的,根据本申请第一方面实施例提出了一种消息推送方法,包括:接收客户端的第一连接请求;根据所述第一连接请求建立并维持与所述客户端的连接;接收应用服务器反馈的推送消息;以及将所述推送消息转发至对应的客户端。
[0009]本申请实施例的消息推送方法,通过代理服务器接收到客户端的连接请求后,并与客户端建立并维持连接,并将应用服务器反馈的推送消息及时的转发至客户端,无需在客户端处理推送消息时断开连接,大大节省了消息推送时间。此外,客户端并不直接与应用服务器相连,而是与具有丰富的功能集和示例配置文件、性能稳定且系统资源消耗低的代理服务器间接与应用服务器相连,减少了应用服务器的请求处理数量,减小了应用服务器的压力,从而有效降低了集群服务器的数量,节约成本和资源。
[0010]本申请第二方面实施例提供了一种消息推送装置,包括:第一接收模块,用于接收客户端的第一连接请求;连接模块,用于根据所述第一连接请求建立并维持与所述客户端的连接;第二接收模块,用于接收应用服务器反馈的推送消息;以及第一发送模块,用于将所述推送消息转发至对应的客户端。
[0011]本申请实施例的消息推送装置,通过代理服务器接收到客户端的连接请求后,并与客户端建立并维持连接,并将应用服务器反馈的推送消息及时的转发至客户端,无需在客户端处理推送消息时断开连接,大大节省了消息推送时间。此外,客户端并不直接与应用服务器相连,而是与具有丰富的功能集和示例配置文件、性能稳定且系统资源消耗低的代理服务器间接与应用服务器相连,减少了应用服务器的请求处理数量,减小了应用服务器的压力,从而有效降低了集群服务器的数量,节约成本和资源。
[0012]本申请第三方面实施例提供了一种消息推送系统,包括:至少一个客户端,用于分别发送第一连接请求;代理服务器,用于接收所述第一连接请求,并根据所述第一连接请求建立并维持与所述客户端的连接,以及接收推送消息,并将所述推送消息转发至对应的客户端;以及应用服务器,用于向所述代理服务器发送所述推送消息。
[0013]本申请实施例的消息推送系统,通过代理服务器接收到客户端的连接请求后,并与客户端建立并维持连接,并将应用服务器反馈的推送消息及时的转发至客户端,无需在客户端处理推送消息时断开连接,大大节省了消息推送时间。此外,客户端并不直接与应用服务器相连,而是与具有丰富的功能集和示例配置文件、性能稳定且系统资源消耗低的代理服务器间接与应用服务器相连,减少了应用服务器的请求处理数量,减小了应用服务器的压力,从而有效降低了集群服务器的数量,节约成本和资源。
[0014]本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
【附图说明】
[0015]本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0016]图1为根据本申请一个实施例的消息推送方法的流程图;
[0017]图2为根据本申请另一个实施例的消息推送方法的流程图;
[0018]图3为根据本申请一个实施例的消息推送装置的结构示意图;
[0019]图4为根据本申请另一个实施例的消息推送装置的结构示意图;
[0020]图5为根据本申请一个具体实施例的消息推送装置的结构示意图;
[0021]图6为根据本申请一个实施例的消息推送系统的结构示意图;
[0022]图7为根据本申请一个实施例的消息推送系统的流程图。
【具体实施方式】
[0023]下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0024]下面参考附图描述根据本申请实施例的消息推送方法、装置和系统。
[0025]为了解决在传统服务器推送技术中需要集群服务器来处理大批量HTTP请求的问题,本申请提出了一种消息推送方法。
[0026]图1为根据本申请一个实施例的消息推送方法的流程图。如图1所示,根据本申请实施例的消息推送方法,可由代理服务器执行,该方法包括:
[0027]S101,代理服务器接收客户端的第一连接请求。
[0028]在本申请的实施例中,客户端可为浏览器等web网页应用程序,第一连接请求可为HTTP请求。第一连接请求中包括发送该第一连接请求的客户端的客户端标识信息。具体地,当用户终端需要接收应用服务器的推送消息时,首先需要通过用户终端中的客户端向代理服务器发送第一连接请求,以请求与代理服务器建立连接。其中,客户端标识信息为客户端ID等能够唯一标识客户端的信息;用户终端可为手机、笔记本电脑、平板电脑等移动终端,也可为台式电脑等电子设备等。
[0029]在本申请的一个实施例中,代理服务器可为NGINX (engine x)服务器,是一种高性能的HTTP和反向代理服务器,也是一个IMAP/P0P3/SMTP代理服务器。NGINX是由IgorSysoev为俄罗斯访问量第二的Rambler, ru站点开发的,其将源代码以类BSD (BerkeleySoftware Distribut1n,伯克利软件套件)许可证的形式发布,稳定性好、具有丰富的功能集、示例配置文件,并且系统资源消耗低。在本申请的其他实施例中,也可为其他具有相同或相似功能的代理服务器,本申请对此不做限定。
[0030]S102,代理服务器根据第一连接请求建立并维持与客户端的连接。
[0031]在本申请的实施例中,代理服务器在接收到第一连接请求之后,可根据第一连接请求与相应的客户端建立连接,并维持与相应的客户端的连接。
[0032]在本申请的一个实施例中,代理服务器在与相应的客户端建立连接之后,可将第一连接请求发送至推送网关,以使推送网关对第一连接请求进行解析以获取第一连接请求对应的客户端标识信息以及第一连接请求对应的路由信息。进而推送网关可建立并存储该客户端标识信息与该路由信息的对应关系,或者根据该客户端标识信息以及相应的路由信息对已经存储的对应关系进行更新。其中,路由信息为发送第一连接请求对
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1