消息推送方法、装置、系统、计算机设备和存储介质与流程

文档序号:15980364发布日期:2018-11-17 00:15阅读:169来源:国知局

本申请涉及互联网技术领域,特别是涉及一种消息推送方法、装置、系统、计算机设备和存储介质。

背景技术

在现有网络中,业务后台会通过服务器向web客户端设备主动推送通知消息。消息推送是指将信息及时送达至相关订阅的用户,并与用户持续友好的互动,可以大幅提升用户活跃度和留存率。

在很多使用场景中,随着用户不断的增长,不可避免的需要进行集群(多机)部署。那么,如何保证集群里的各个服务器之间推送消息的准确可靠成为亟待解决的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够保证集群里的各个服务器之间推送消息的准确可靠的信息推送方法、装置、计算机设备和存储介质。

一种信息推送方法,所述方法包括:

获取待推送的目标信息,所述目标信息中携带有第一用户信息,所述第一用户信息为所述目标信息对应的待推送用户的用户信息;

将所述第一用户信息分别与各第二用户信息进行比较,各所述第二用户信息分别为已与推送服务器集群中的任意一个推送服务器建立推送通道的客户端设备对应的用户信息;

在当前推送服务器所对应的第二用户信息中和所述第一用户信息中存在一致的用户信息时,通过所述当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备。

在其中一个实施例中,上述的消息推送方法还包括:接收业务服务器产生并发布的目标信息,将所述目标信息存储在数据库设备中;

上述的获取待推送的目标信息的步骤包括:向所述数据库设备发送数据订阅请求,接收所述数据库设备返回的所述目标信息。

在其中一个实施例中,上述的消息推送方法,在所述将所述第一用户信息分别与各第二用户信息进行比较的步骤之前,还包括:在所述当前推送服务器和所述目标客户端设备之间建立用于推送信息的推送通道。

在其中一个实施例中,上述的在所述当前推送服务器和所述目标客户端设备之间建立用于推送信息的推送通道的步骤,包括:

接收所述目标客户端设备发送登录请求,所述登录请求携带有所述目标客户端设备的用户信息;

在对所述目标客户端设备发送的用户信息验证通过时,向所述目标客户端设备返回访问标识信息;

接收所述目标客户端设备发送的通道建立请求,所述通道建立请求中携带有所述访问标识信息;

在所述通道建立请求携带有的访问标识信息与发送给所述目标客户端设备的访问标识信息一致时,与所述目标客户端设备建立所述推送通道,并将所述目标客户端设备发送的用户信息确定为第二用户信息。

在其中一个实施例中,上述的消息推送方法,还包括:在接收到当前客户端设备发送的登录请求时,根据当前接收到登录请求所携带的的用户信息以及预设的用户信息和推送服务器的关联关系,确定所述当前客户端设备所需连接的推送服务器,将所述当前客户端设备分配给所述当前客户端设备所需连接的推送服务器进行推送通道的建立。

在其中一个实施例中,上述的推送服务器集群包括socket.io服务器集群,所述数据库设备包括redis数据库设备或者redis数据库集群设备。

一种消息推送装置,所述装置包括:

获取模块,用于获取待推送的目标信息,所述目标信息中携带有第一用户信息,所述第一用户信息为所述目标信息对应的待推送用户的用户信息;

比较模块,用于将所述第一用户信息分别与各第二用户信息进行比较,各所述第二用户信息分别为已与推送服务器集群中的任意一个推送服务器建立推送通道的客户端设备对应的用户信息;

推送模块,用于在当前推送服务器所对应的第二用户信息中和所述第一用户信息中存在一致的用户信息时,通过所述当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备。

一种消息推送系统,所述系统包括推送服务器集群,所述推送服务器集群至少包括两台推送服务器;

各所述推送服务器用于分别获取待推送的目标信息,所述目标信息中携带有第一用户信息,将所述第一用户信息分别与对应的第二用户信息进行比较;

在当前推送服务器所对应的第二用户信息中和所述第一用户信息中存在一致的用户信息时,所述当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备;

其中,所述第一用户信息为所述目标信息对应的待推送用户的用户信息,所述第二用户信息为对应的推送服务器所连接的客户端设备对应的用户信息。

在其中一个实施例中,上述的消息推送系统,还包括数据库设备;

所述数据库设备用于在接收业务服务器产生并发送的目标信息后,存储所述目标信息;

各所述推送服务器向所述数据库设备发送数据订阅请求,接收所述数据库设备返回的所述目标信息。

在其中一个实施例中,上述的消息推送系统,还包括负载均衡服务器;

所述负载均衡服务器用于在接收到当前客户端设备发送的用户信息时,根据当前接收到的用户信息以及预设的用户信息和推送服务器的关联关系,确定所述当前客户端设备所需连接的推送服务器,将所述当前客户端设备分配给所述当前客户端设备所需连接的推送服务器进行推送通道的建立。

在其中一个实施例中,上述的消息推送系统,还包括业务服务器,所述业务服务器用于产生并发布所述目标信息。

在其中一个实施例中,上述的消息推送系统,所述推送服务器集群包括socket.io服务器集群,所述数据库设备包括redis数据库设备或者redis数据库设备集群。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取待推送的目标信息,所述目标信息中携带有第一用户信息,所述第一用户信息为所述目标信息对应的待推送用户的用户信息;

将所述第一用户信息分别与各第二用户信息进行比较,各所述第二用户信息分别为已与推送服务器集群中的任意一个推送服务器建立推送通道的客户端设备对应的用户信息;

在当前推送服务器所对应的第二用户信息中和所述第一用户信息中存在一致的用户信息时,通过所述当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取待推送的目标信息,所述目标信息中携带有第一用户信息,所述第一用户信息为所述目标信息对应的待推送用户的用户信息;

将所述第一用户信息分别与各第二用户信息进行比较,各所述第二用户信息分别为已与推送服务器集群中的任意一个推送服务器建立推送通道的客户端设备对应的用户信息;

在当前推送服务器所对应的第二用户信息中和所述第一用户信息中存在一致的用户信息时,通过所述当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备。

上述信息推送方法、装置、计算机设备和存储介质,由于待推送的目标信息中携带有第一用户信息,且由于在获取待推送的目标信息后,会将该第一用户信息分别与推送服务器集群中的各个推送服务器对应第二用户信息进行比较,并在当前推送服务器所对应的第二用户信息中和第一用户信息中存在一致的用户信息时,通过所述当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备,如此,可以保证集群里的各个推送服务器之间推送消息的准确可靠。

附图说明

图1为一个实施例中信息推送方法的应用环境图;

图2为一个实施例中信息推送方法的流程示意图;

图3为一个实施例中推送通道建立步骤的流程示意图;

图4为一个实施例中业务推送装置的结构框图;

图5为另一个实施例中业务推送装置的结构框图;

图6为一个实施例中业务推送系统的结构框图;

图7为一个实施例中web客户端与socket.io建立连接的验证过程的的流程示意图;

图8为另一个实施例中信息推送方法的流程示意图;

图9为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的信息推送方法,可以应用于如图1所示的应用环境中。其中,业务服务器集101与推送服务器集群102通过网络进行通信,推送服务器集群102与各客户端设备集群103通过网络进行通信。其中,客户端设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,业务服务器101用独立的服务器或者可以用多个业务服务器组成的服务器集群来实现,推送服务器集群102可以用多个推送服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种信息推送方法,以该方法应用于图1中的推送服务器集群为例进行说明,包括以下步骤:

步骤s201:获取待推送的目标信息,所述目标信息中携带有第一用户信息,所述第一用户信息为所述目标信息对应的待推送用户的用户信息;

这里,用户信息可以是用户标识信息,例如,用户账号信息。

这里,待推送用户可以是产生该目标信息的业务服务器或者业务服务器集群设定的需要将所述目标信息推送给的用户;待推送用户数量可以不受限制。

具体地,推送服务器集群可以直接,也可以间接从业务服务器或者业务服务器集群获取待推送的目标信息。

步骤s202:将所述第一用户信息分别与各第二用户信息进行比较,各所述第二用户信息分别为已与推送服务器集群中的任意一个推送服务器建立推送通道的客户端设备对应的用户信息;

这里,所述推送通道为在推送服务器和客户端设备之间建立并保持通信连接的连接通道。

步骤s203:在当前推送服务器所对应的第二用户信息中和所述第一用户信息中存在一致的用户信息时,通过所述当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备;

这里,当前推送服务器可以是推送服务器集群中各个推送服务器中的任意一个。

需要说明的是,待推送用户的数量可以大于当前推送服务器当前推送的用户的数量。

上述信息推送方法中,由于待推送的目标信息中携带有第一用户信息,且由于在获取待推送的目标信息后,会将该第一用户信息分别与推送服务器集群中的各个推送服务器对应第二用户信息进行比较,并在当前推送服务器所对应的第二用户信息中和第一用户信息中存在一致的用户信息时,通过所述当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备,如此,可以保证集群里的各个推送服务器之间推送消息的准确可靠。

在其中一个实施例中,本发明的消息推送方法还可以包括:接收业务服务器产生并发布的目标信息,将所述目标信息存储在数据库设备中;所述获取待推送的目标信息的步骤包括:向所述数据库设备发送数据订阅请求,接收所述数据库设备返回的所述目标信息。

这里,业务服务器可以是独立的用独立的服务器或者是多个服务器组成的服务器集群来实现。一般地,随着发布信息需求的增长,可以部署业务服务器集群,业务服务器集群可以包括至少两台业务服务器。上述的接收业务服务器产生并发布的目标信息可以包括:接收业务服务器集群中的任意一台业务服务器产生并发布的目标信息。

这里,数据库设备可以是独立的数据库设备也可以是用多个数据库组成的数据集群设备来实现。

其中,业务服务器是实时信息的发送者,当有相关的信息变更需要推送时,业务服务器可以通过连接数据库设备,将需要推送的信息(例如,如上的目标信息)业发布到数据库设备中。推送服务器集群可以向所述数据库设备发送数据订阅请求,接收所述数据库设备返回的所述目标信息。其中,可以是推送服务器集群的各个推送服务器分别向所述数据库设备发送数据订阅请求,并分别接收所述数据库设备返回的所述目标信息,也可以是,推送服务器集群的任意一台推送服务器向所述数据库设备发送数据订阅请求,并接收所述数据库设备返回的所述目标信息,然后将接收到的目标信息分享给推送服务器集群中的剩余推送服务器。

本实施例中的方案,由于先将所述目标信息存储在数据库设备中,且由于是向所述数据库设备发送数据订阅请求,接收所述数据库设备返回的所述目标信息,如此,将原本在一台服务器实现的业务后台和推送服务进行了解耦,可以使得目标信息的推送服务变得可集群分流处理,针对后续增长的推送压力只需要增加部署相应服务器即可解决压力,例如,在业务服务器压力较大,而推送服务器压力不大时,可以只仅增加业务服务器,而不需要像未解耦前一样同时增加业务服务器和推送服务器,造成推送服务器的浪费。采用本实施例中的方案,可以提升信息推送系统的可扩展能力。

在其中一个实施例中,在所述将所述第一用户信息分别与各第二用户信息进行比较的步骤之前,消息推送方法还可以包括:在所述当前推送服务器和所述目标客户端设备之间建立用于推送信息的推送通道。如此,所述当前推送服务器可以通过该推送通道将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备。其中,在所述当前推送服务器和所述目标客户端设备之间建立推送通道可以采用任意可以实现的方式。

在其中一个实施例中,如图3所示,上述的在所述当前推送服务器和所述目标客户端设备之间建立用于推送信息的推送通道的步骤,可以包括:

步骤s301:接收所述目标客户端设备发送登录请求,所述登录请求携带有所述目标客户端设备的用户信息;

这里,用户信息可以是用户标识信息,例如,用户名和密码。

步骤s302:在对所述目标客户端设备发送的用户信息验证通过时,向所述目标客户端设备返回访问标识信息;

这里,用户信息验证可以是验证用户信息中用户名是否为已存储的合法用户列表中的用户名,若是,则验证所述用户信息中的密码是否是与所述合法用户列表中对应的用户名所绑定的密码一致,若是,则所述用户信息验证通过。若用户信息中用户名不是已存储的合法用户列表中的用户名,或者在所述用户信息中的密码与所述合法用户列表中对应的用户名所绑定的密码不一致,则对所述目标客户端设备发送的用户信息验证不通过。

步骤s303:接收所述目标客户端设备发送的通道建立请求,所述通道建立请求中携带有所述访问标识信息;

步骤s304:在所述通道建立请求携带有的访问标识信息与发送给所述目标客户端设备的访问标识信息一致时,与所述目标客户端设备建立所述推送通道,并将所述目标客户端设备发送的用户信息确定为第二用户信息。

在其中一个实施例中,本发明的消息推送方法,还可以包括:在接收到当前客户端设备发送的登录请求时,根据当前接收到登录请求所携带的的用户信息以及预设的用户信息和推送服务器的关联关系,确定所述当前客户端设备所需连接的推送服务器,将所述当前客户端设备分配给所述当前客户端设备所需连接的推送服务器进行推送通道的建立。

在其中一个实施例中,上述的推送服务器集群包括socket.io服务器集群。

由于socket.io统一了通信的api(applicationprogramminginterface,应用程序编程接口),在内部实现上支持websocket、长轮询等方式,socket.io会根据环境来选择适合的通信方式,比如在不支持使用websocket的浏览器上能够自动切换为兼容使用的长轮询方式。因此,本实施例中采用socket.io服务器集群作为推送服务器集群可以实现对各种浏览器的兼容。

此外需要说明的是,传统方式中,在socket.io服务器一般都是是单机部署的,而没有本实施例中的这种使用集群(多机)部署的方式。

应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种业务推送装置,包括:获取模块401、比较模块402和推送模块403,其中:

获取模块401,用于获取待推送的目标信息,所述目标信息中携带有第一用户信息,所述第一用户信息为所述目标信息对应的待推送用户的用户信息;

比较模块402,用于将所述第一用户信息分别与各第二用户信息进行比较,各所述第二用户信息分别为已与推送服务器集群中的任意一个推送服务器建立推送通道的客户端设备对应的用户信息;

推送模块403,用于在当前推送服务器所对应的第二用户信息中和所述第一用户信息中存在一致的用户信息时,通过所述当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备。

在其中一个实施例中,如图5所示,本发明的业务推送装置还可以包括:存储模块501,存储模块501用于接收业务服务器产生并发布的目标信息,将所述目标信息存储在数据库设备中;获取模块401向所述数据库设备发送数据订阅请求,接收所述数据库设备返回的所述目标信息。

在其中一个实施例中,如图5所示,本发明的业务推送装置还可以包括:通道建立模块502,通道建立模块502用于在所述当前推送服务器和所述目标客户端设备之间建立用于推送信息的推送通道。

在其中一个实施例中,通道建立模块502可以接收所述目标客户端设备发送登录请求,所述登录请求携带有所述目标客户端设备的用户信息,在对所述目标客户端设备发送的用户信息验证通过时,向所述目标客户端设备返回访问标识信息,接收所述目标客户端设备发送的通道建立请求,所述通道建立请求中携带有所述访问标识信息,在所述通道建立请求携带有的访问标识信息与发送给所述目标客户端设备的访问标识信息一致时,与所述目标客户端设备建立所述推送通道,并将所述目标客户端设备发送的用户信息确定为第二用户信息。

在其中一个实施例中,如图5所示,本发明的业务推送装置还可以包括负载均衡模块503,负载均衡模块503用于在接收到当前客户端设备发送的登录请求时,根据当前接收到登录请求所携带的的用户信息以及预设的用户信息和推送服务器的关联关系,确定所述当前客户端设备所需连接的推送服务器,将所述当前客户端设备分配给所述当前客户端设备所需连接的推送服务器进行推送通道的建立。

在其中一个实施例中,所述推送服务器集群包括socket.io服务器集群,所述数据库设备包括redis数据库设备或者redis数据库集群设备。

关于业务推送装置的具体限定可以参见上文中对于信息推送方法的限定,在此不再赘述。上述业务推送装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

本发明还提供一种消息推送系统,以下就本发明的消息推送系统的各个实施例进行详细说明。图6中示出了本发明的消息推送系统的一个较佳实施例的结构示意图。依据不同的考虑因素,在具体实现本发明的消息推送系统时,可以包含图6中所示的全部,也可以只包含图6中所示的其中一部分,以下就针对其中的几个消息推送系统的具体实施例进行详细说明。

在其中一个实施例中,本发明提供的消息推送系统可以包括推送服务器集群600,推送服务器集群600包括至少两台推送服务器601;

各推送服务器601用于分别获取待推送的目标信息,所述目标信息中携带有第一用户信息,将所述第一用户信息分别与对应的第二用户信息进行比较;

在当前推送服务器所对应的第二用户信息中和所述第一用户信息中存在一致的用户信息时,当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备;

其中,所述第一用户信息为所述目标信息对应的待推送用户的用户信息,所述第二用户信息为对应的推送服务器所连接的客户端设备对应的用户信息。

在其中一个实施例中,本发明提供的消息推送系统还可以包括数据库设备;

数据库设备用于在接收到业务服务器产生并发送的目标信息后,存储所述目标信息;

各推送服务器向数据库设备发送数据订阅请求,接收所述数据库设备返回的所述目标信息。

在其中一个实施例中,本发明提供的消息推送系统还可以包括负载均衡服务器;

所述负载均衡服务器用于在接收到当前客户端设备发送的用户信息时,根据当前接收到的用户信息以及预设的用户信息和推送服务器的关联关系,确定所述当前客户端设备所需连接的推送服务器,将所述当前客户端设备分配给所述当前客户端设备所需连接的推送服务器进行推送通道的建立。

在其中一个实施例中,本发明提供的的消息推送系统还可以包括业务服务器集;

所述业务服务器用于产生所述目标信息,并将所述目标信息发布得到数据库设备。其中,业务服务器可以是一台也可以是多台。

在其中一个实施例中,本发明的推送服务器集群可以包括socket.io服务器集群,所述数据库设备可以包括redis数据库设备或者redis数据库集群设备。

以下以推送服务器集群为socket.io服务器集群,数据库设备为redis数据库集群设备为例对本发明方案进行说明。

如图6所示,为一个实施例中的,以推送服务器集群为socket.io服务器集群,数据库设备为redis数据库集群设备的消息推送系统的组成架构示意图。其中:

业务服务器集群600:其是实时消息(相当于上述的目标信息)的发送者,当有相关的消息变更需要推送时,业务服务器集群600通过连接redis数据库集群设备610将需要推送的信息发布(pub)到redis数据库集群设备610中。其中,业务服务器集群600可以包括至少两台业务服务器601。需要说明的是,在本实施例中,是以包括至少两台业务服务器601为例,但业务服务器601的台数也可以为1。

redis数据库集群设备610:主要利用其发布订阅(pub/sub)的消息通信模式将业务服务器集群600的业务发布服务和socket.io服务器集群的推送服务解耦,使得这两者相互不影响,这样处理还有利于两边服务器集群根据业务和负载压力扩展相应的服务器。

socket.io服务器集群620:这里是业务实时消息的订阅者以及推送者。基于java环境搭建的socket.io服务器集群,它通过向redis数据库集群设备订阅(sub)业务服务器集群里发布的实时消息,并将消息推送到对应与其建立连接的web客户端。这里,web客户端相当于前述的客户端设备。socket.io服务器集群620可以包括至少两台socket.io服务器621。

负载均衡服务器630:负载均衡服务器630的作用是将web客户端a~d各个客户端群分发连接到socket.io服务器集群620中的各个相应应socket.io服务器a~d。

web客户端-a~d群:这里指代的是跟对应socket.io服务器建立推送通信的各个web客户端群体,web客户端-a~d群中的每个web客户端分别跟socket.io集群中的a~d服务器中的一个socket.io服务器建立通信连接,当socket.io服务a收到关于web客户端-a群里的用户的变更信息时,会推送服务到指定的web客户端。

需要说明的是,根据实际需要,消息推送系统可以仅包括图6中的业务服务器集群600、redis数据库集群设备610、socket.io服务器集群620和负载均衡服务器630中的一部分或者全部。

web客户端与socket.io服务器建立连接的验证方式可以如图7所示,具体地:

首先,web客户端想获取对应的实时推送消息,需要先与socket.io服务器建立消息推送的连接通道,这个时候就需要先将能识别当前用户的token(在业务后台中登录成功获取的可以验证获取当前用户信息的值)传给socket.io服务器,并且socket.io服务器会获取当前与web浏览器建立连接的会话id(会话标识)。

其次,socket.io服务器获取到建立连接的请求,验证token的用户信息成功后会返回一个当前建立连接的accesstoken(访问标识信息)给客户端。该accesstoken是随机生成的唯一id,比如使用uuid(universallyuniqueidentifier,通用唯一识别码)生成获取,用户绑定当前建立连接的用户和会话。

接着,web客户端在获取到申请的用于建立连接的accesstoken后开始与socket.io服务器进行消息推送通道的建立。

最后,accesstoken验证成功后会建立推送连接通道,验证失败后则返回连接失败,需要重新申请accesstoken再建立连接。

如图8所示,消息推送流程如下:

首先,业务服务器集群会产生需要实时推送的数据,利用redis数据库集群设备的订阅/发布的通信方案,将数据以约定的格式(比如json)发布到redis数据库集群设备中,这里发布的数据也会对应携带需要推送到的指定的用户信息。这时socket.io服务器会从redis数据库集群设备里面订阅获取到需要实时推送的消息,并且检查需要推送的用户是否与当前的socket.io已经建立推送通道,只有建立推送通道的web客户端才会收到对应推送的实时消息,比如,图中用户a2与socket.io服务a建立了连接,那么如果socket.io服务器a收到从redis数据库集群设备订阅获取到的关于用户a2的消息,这个时候用户a2会收到消息,其他用户是不会收到消息的。

关于业务推送系统的具体限定可以参见上文中对于信息推送方法的限定,在此不再赘述。上述业务推送装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储业务推送数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种信息推送方法。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

获取待推送的目标信息,所述目标信息中携带有第一用户信息,所述第一用户信息为所述目标信息对应的待推送用户的用户信息;

将所述第一用户信息分别与各第二用户信息进行比较,各所述第二用户信息分别为已与推送服务器集群中的任意一个推送服务器建立推送通道的客户端设备对应的用户信息;

在当前推送服务器所对应的第二用户信息中和所述第一用户信息中存在一致的用户信息时,通过所述当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收业务服务器产生并发布的目标信息,将所述目标信息存储在数据库设备中;

处理器在执行计算机程序实现获取待推送的目标信息的步骤时,具体实现以下步骤:向所述数据库设备发送数据订阅请求,接收所述数据库设备返回的所述目标信息。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:在所述将所述第一用户信息分别与各第二用户信息进行比较的步骤之前,在所述当前推送服务器和所述目标客户端设备之间建立用于推送信息的推送通道。

在一个实施例中,处理器执行计算机程序实现在所述当前推送服务器和所述目标客户端设备之间建立用于推送信息的推送通道的步骤时,具体实现以下步骤:接收所述目标客户端设备发送登录请求,所述登录请求携带有所述目标客户端设备的用户信息;在对所述目标客户端设备发送的用户信息验证通过时,向所述目标客户端设备返回访问标识信息;接收所述目标客户端设备发送的通道建立请求,所述通道建立请求中携带有所述访问标识信息;在所述通道建立请求携带有的访问标识信息与发送给所述目标客户端设备的访问标识信息一致时,与所述目标客户端设备建立所述推送通道,并将所述目标客户端设备发送的用户信息确定为第二用户信息。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:在接收到当前客户端设备发送的登录请求时,根据当前接收到登录请求所携带的的用户信息以及预设的用户信息和推送服务器的关联关系,确定所述当前客户端设备所需连接的推送服务器,将所述当前客户端设备分配给所述当前客户端设备所需连接的推送服务器进行推送通道的建立。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取待推送的目标信息,所述目标信息中携带有第一用户信息,所述第一用户信息为所述目标信息对应的待推送用户的用户信息;

将所述第一用户信息分别与各第二用户信息进行比较,各所述第二用户信息分别为已与推送服务器集群中的任意一个推送服务器建立推送通道的客户端设备对应的用户信息;

在当前推送服务器所对应的第二用户信息中和所述第一用户信息中存在一致的用户信息时,通过所述当前推送服务器将所述目标信息发送给所述存在一致的用户信息对应的目标客户端设备。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收业务服务器产生并发布的目标信息,将所述目标信息存储在数据库设备中;

计算机程序被处理器执行所述获取待推送的目标信息的步骤时,具体实现以下步骤:向所述数据库设备发送数据订阅请求,接收所述数据库设备返回的所述目标信息。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在所述将所述第一用户信息分别与各第二用户信息进行比较的步骤之前,在所述当前推送服务器和所述目标客户端设备之间建立用于推送信息的推送通道。

在一个实施例中,计算机程序被处理器执行所述在所述当前推送服务器和所述目标客户端设备之间建立用于推送信息的推送通道的步骤时,具体实现以下步骤:接收所述目标客户端设备发送登录请求,所述登录请求携带有所述目标客户端设备的用户信息;在对所述目标客户端设备发送的用户信息验证通过时,向所述目标客户端设备返回访问标识信息;接收所述目标客户端设备发送的通道建立请求,所述通道建立请求中携带有所述访问标识信息;在所述通道建立请求携带有的访问标识信息与发送给所述目标客户端设备的访问标识信息一致时,与所述目标客户端设备建立所述推送通道,并将所述目标客户端设备发送的用户信息确定为第二用户信息。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在接收到当前客户端设备发送的登录请求时,根据当前接收到登录请求所携带的的用户信息以及预设的用户信息和推送服务器的关联关系,确定所述当前客户端设备所需连接的推送服务器,将所述当前客户端设备分配给所述当前客户端设备所需连接的推送服务器进行推送通道的建立。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1