跨服务器消息推送系统及方法_5

文档序号:9527716阅读:来源:国知局
推送消息添加至所述生产者队列;所述跨服务器消息推送系统根据所述推送消息确定所述推送消息对应的消费者队列;并将所述生产者队列中的所述推送消息分发至所确定的消费者队列。例如:在点对点消息推送时,所述跨服务器消息推送系统可以根据所述推送消息内的用户标识,在数据库中查找所述用户标识对应的IP地址段,根据所述IP地址段确定所述推送消息对应的消费者队列;在一对多消息推送时,所述跨服务器消息推送系统可以根据所述推送消息内的标签,在数据库中查找所述标签对应的目标客户端及对应的IP地址段,根据所述IP地址段确定所述推送消息对应的消费者队列。
[0128]本实施例通过生产者队列向各推送服务器的消费者队列分发推送消息,使得推送消息可以共享,避免了跨服务器进行消息推送时部分服务器无法接收到对应的推送消息的问题。使得在服务器压力增大时,可以横向扩展服务器,以缓解服务器压力。
[0129]参照图10,图10为本发明跨服务器消息推送方法的第三实施例的流程示意图。基于上述跨服务器消息推送方法的第一实施例,所述步骤S30包括:
[0130]步骤S31,通过所述推送服务器查询本推送服务器所处的IP地址段内的客户端,并根据所述推送消息确定对应的目标客户端;
[0131]步骤S32,通过所述推送服务器与所确定的目标客户端之间的双向长连接将所述推送消息发送至所确定的目标客户端。
[0132]所述跨服务器消息推送系统包括推送服务器,通过所述推送服务器查询本推送服务器所处的IP地址段内的客户端,并根据所述推送消息确定对应的目标客户端,通过推送服务器查询本服务器所在的IP地址段内的客户端,将查询所有客户端的压力均摊到各个推送服务器,实现了各推送服务器的负载均衡;通过所述推送服务器与所确定的目标客户端之间的双向长连接将所述推送消息发送至所确定的目标客户端,实现了服务器主动向客户端推送消息。
[0133]进一步的,所述将生产者程序产生的推送消息添加至生产者队列的步骤之前,所述跨服务器消息推送系统还可以在接收到目标客户端的连接请求时,建立所述目标客户端与对应的推送服务器之间的双向长连接。
[0134]参照图7,图7为本发明基于Websocket连接跨服务器消息推送系统的较佳实施例的示意图。所述双向长连接可以是Websocket ( 一种HTML5协议,实现了浏览器与服务器全双工通信)连接。所述Websocket连接仅需进行一次握手即可保证双方的长连接,无需像HTTP那样每次都需要三次握手,才能发送消息。减少了服务器请求时间和请求次数,极大的降低了服务器的压力。
[0135]进一步的,所述跨服务器消息推送系统还可以通过查询数据确定对应的目标客户端是否在线,若所述目标客户端在线,则将所述推送消息发送至所述目标客户端;若所述目标客户端不在线,则将所述推送消息作为离线消息进行保存,在检测到所述目标客户端在线时,再将所述离线消息发送至所述目标客户端。
[0136]本实施例通过推送服务器查询本服务器所在的IP地址段内的客户端,将查询所有客户端的压力均摊到各个推送服务器,实现了各推送服务器的负载均衡,并且通过所述推送服务器与所确定的目标客户端之间的双向长连接将所述推送消息发送至所确定的目标客户端,实现了服务器主动向客户端推送消息。
[0137]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0138]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0139]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0140]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1.一种跨服务器消息推送系统,其特征在于,所述跨服务器消息推送系统包括: 生产者模块,用于将待推送的推送消息添加至生产者队列,并通过所述生产者队列将所述推送消息分发至对应的消费者队列; 消费者模块,用于将所述消费者队列中的所述推送消息通知给对应的推送服务器;推送模块,用于通过所述推送服务器将所述推送消息发送至目标客户端,以供所述目标客户端进行消息推送。2.如权利要求1所述的跨服务器消息推送系统,其特征在于,所述生产者模块包括接收单元、确定单元和分发单元; 所述接收单元,用于接收服务端发送的推送消息,并将所述推送消息添加至所述生产者队列; 所述确定单元,用于根据所述推送消息确定对应的消费者队列; 所述分发单元,用于将所述生产者队列中的所述推送消息分发至所确定的消费者队列。3.如权利要求1所述的跨服务器消息推送系统,其特征在于,所述推送模块,还用于通过所述推送服务器查询本推送服务器所处的IP地址段内的客户端,并根据所述推送消息确定对应的目标客户端; 所述推送模块,还用于通过所述推送服务器与所确定的目标客户端之间的双向长连接将所述推送消息发送至所确定的目标客户端。4.如权利要求3所述的跨服务器消息推送系统,其特征在于,所述跨服务器消息推送系统还包括连接模块; 所述连接模块,用于在接收到目标客户端的连接请求时,建立所述目标客户端与对应的推送服务器之间的双向长连接。5.如权利要求1至4任一项所述的跨服务器消息推送系统,其特征在于,所述消费者模块,还用于将所述消费者队列中的所述推送消息通知给所述消费者队列所绑定的推送服务器。6.一种跨服务器消息推送方法,其特征在于,所述跨服务器消息推送方法包括以下步骤: 将待推送的推送消息添加至生产者队列,并通过所述生产者队列将所述推送消息分发至对应的消费者队列; 将所述消费者队列中的所述推送消息通知给对应的推送服务器; 通过所述推送服务器将所述推送消息发送至目标客户端,以供所述目标客户端进行消息推送。7.如权利要求6所述的跨服务器消息推送方法,其特征在于,所述将待推送的推送消息添加至生产者队列,并通过所述生产者队列将所述推送消息分发至对应的消费者队列的步骤包括: 接收服务端发送的推送消息,并将所述推送消息添加至所述生产者队列; 根据所述推送消息确定对应的消费者队列; 将所述生产者队列中的所述推送消息分发至所确定的消费者队列。8.如权利要求6所述的跨服务器消息推送方法,其特征在于,所述通过所述推送服务器将所述推送消息发送至目标客户端的步骤包括: 通过所述推送服务器查询本推送服务器所处的IP地址段内的客户端,并根据所述推送消息确定对应的目标客户端; 通过所述推送服务器与所确定的目标客户端之间的双向长连接将所述推送消息发送至所确定的目标客户端。9.如权利要求8所述的跨服务器消息推送方法,其特征在于,所述将生产者程序产生的推送消息添加至生产者队列的步骤之前,还包括: 在接收到目标客户端的连接请求时,建立所述目标客户端与对应的推送服务器之间的双向长连接。10.如权利要求6至9任一项所述的跨服务器消息推送方法,其特征在于,所述将所述消费者队列中的所述推送消息通知给对应的推送服务器的步骤包括: 将所述消费者队列中的所述推送消息通知给所述消费者队列所绑定的推送服务器。
【专利摘要】本发明公开了一种跨服务器消息推送系统,所述跨服务器消息推送系统包括:生产者模块,用于将待推送的推送消息添加至生产者队列,并通过所述生产者队列将所述推送消息分发至对应的消费者队列;消费者模块,用于将所述消费者队列中的所述推送消息通知给对应的推送服务器;推送模块,用于通过所述推送服务器将所述推送消息发送至目标客户端,以供所述目标客户端进行消息推送。本发明还提供一种跨服务器消息推送方法。本发明使得推送消息可以共享,避免了跨服务器进行消息推送时部分服务器无法接收到对应的推送消息的问题。使得在服务器压力增大时,可以横向扩展服务器,以缓解服务器压力。
【IPC分类】H04L29/08, H04W4/12
【公开号】CN105282245
【申请号】CN201510634511
【发明人】王军
【申请人】努比亚技术有限公司
【公开日】2016年1月27日
【申请日】2015年9月29日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1