一种消息推送方法、装置、电子设备及存储介质制造方法及图纸

技术编号:28987617 阅读:20 留言:0更新日期:2021-06-23 09:39
本发明专利技术公开了一种消息推送方法、装置、电子设备及存储介质,用于解决现有的消息推送方法频道与代理层的订阅关系不可控,一个频道可能会被多个代理层订阅的技术问题。其中,方法包括:通过预设的网关接收预设客户端针对预设频道的第一订阅请求,并将第一订阅请求发送至预设第一代理层;通过第一代理层将第一订阅请求转化为第二订阅请求,并将第二订阅请求发送至预设中心化组件;通过中心化组件响应第二订阅请求确定目标代理层,并判断目标代理层与第一代理层是否相同;若相同,则通过第一代理层向客户端返回订阅成功消息,并生成目标代理层与频道的订阅关系;当接收到针对频道的推送请求时,基于订阅关系将推送请求发送至对应的客户端。

【技术实现步骤摘要】
一种消息推送方法、装置、电子设备及存储介质
本专利技术涉及消息推送
,尤其涉及一种消息推送方法、装置、电子设备及存储介质。
技术介绍
当前的即时推送系统中,客户端接入服务端推送系统,主要通过TCP协议连接负载均衡器,负载均衡器再将流量随机转接至客户端代理层proxy。在房间、频道、直播间等业务场景中,订阅关系会有三个维度,分别是频道、客户端标识(即用户标识)、proxy标识。一条推往某个指定房间的消息,需要先路由到proxy,再路由到客户端。目前主要有两种可行的方式,一种是无视与proxy的订阅关系,将推送消息广播到所有proxy,由proxy根据本地的房间、客户端的订阅关系,推送消息或是丢弃消息。这种方式简化了订阅关系的处理;但是,将消息广播到所有的proxy,对每个proxy来说大部分消息都是无效的,即无效消息放大,大量的无效消息对网络资源、CPU资源造成了极大的浪费;而且,由于消息是直接广播至所有proxy,当消息量达到单机负载瓶颈,水平扩容将失去任何效果。另一种是由上层业务或者推送服务入口去处理订阅关系,即在推送入口处查询房间与proxy的订阅关系,然后设置消息队列(MQ)路由规则,再由proxy根据本地订阅关系推送到客户端,这种方式由于订阅关系比较庞大且变化快,且频道与proxy的订阅关系不可控,一个频道可能会被多个proxy订阅,消息需要投递多次,从而提高存储成本,以及导致性能延时。
技术实现思路
本专利技术提供了一种消息推送方法、装置、电子设备及存储介质,用于解决现有的消息推送方法频道与代理层的订阅关系不可控,一个频道可能会被多个代理层订阅的技术问题。本专利技术提供了一种消息推送方法,包括:通过预设的网关接收预设客户端针对预设频道的第一订阅请求,并将所述第一订阅请求发送至预设第一代理层;通过所述第一代理层将所述第一订阅请求转化为第二订阅请求,并将所述第二订阅请求发送至预设中心化组件;通过所述中心化组件响应所述第二订阅请求确定目标代理层,并判断所述目标代理层与所述第一代理层是否相同;若相同,则通过所述第一代理层向所述客户端返回订阅成功消息,并生成所述目标代理层与所述频道的订阅关系;当接收到针对所述频道的推送请求时,基于所述订阅关系将所述推送请求对应的推送消息发送至对应的客户端。可选地,还包括;若所述目标代理层与所述第一代理层不同,则通过所述第一代理层向所述客户端返回所述目标代理层的代理层标识;所述代理层标识用于所述客户端发起二次订阅。可选地,所述通过所述中心化组件响应所述第二订阅请求确定目标代理层的步骤,包括:通过所述中心化组件判断是否存在所述频道对应的订阅关系;若是,根据所述订阅关系确定目标代理层;若否,为所述频道分配第二代理层,将所述第二代理层作为所述频道的目标代理层。可选地,所述当接收到针对所述频道的推送请求时,基于所述订阅关系将所述推送请求发送至所述客户端的步骤,包括:当接收到针对所述频道的推送请求时,基于所述订阅关系获取所述频道对应的代理层标识,并将所述代理层标识发送至预设消息队列;通过所述消息队列将所述推送请求对应的推送消息发送至所述代理层标识对应的目标代理层;以通过所述目标代理层将所述推送消息发送至所述客户端。本专利技术提供了一种消息推送装置,包括:第一订阅请求发送模块,用于通过预设的网关接收预设客户端针对预设频道的第一订阅请求,并将所述第一订阅请求发送至预设第一代理层;第二订阅请求发送模块,用于通过所述第一代理层将所述第一订阅请求转化为第二订阅请求,并将所述第二订阅请求发送至预设中心化组件;目标代理层确定模块,用于通过所述中心化组件响应所述第二订阅请求确定目标代理层,并判断所述目标代理层与所述第一代理层是否相同;订阅成功消息返回模块,用于若相同,则通过所述第一代理层向所述客户端返回订阅成功消息,并生成所述目标代理层与所述频道的订阅关系;推送模块,用于当接收到针对所述频道的推送请求时,基于所述订阅关系将所述推送请求对应的推送消息发送至对应的客户端。可选地,还包括;代理层标识返回模块,用于若所述目标代理层与所述第一代理层不同,则通过所述第一代理层向所述客户端返回所述目标代理层的代理层标识;所述代理层标识用于所述客户端发起二次订阅。可选地,所述目标代理层确定模块,包括:订阅关系判断子模块,用于通过所述中心化组件判断是否存在所述频道对应的订阅关系;第一目标代理层确定子模块,用于若是,根据所述订阅关系确定目标代理层;第二目标代理层确定子模块,用于若否,为所述频道分配第二代理层,将所述第二代理层作为所述频道的目标代理层。可选地,所述推送模块,包括:代理层标识发送子模块,用于当接收到针对所述频道的推送请求时,基于所述订阅关系获取所述频道对应的代理层标识,并将所述代理层标识发送至预设消息队列;推送子模块,用于通过所述消息队列将所述推送请求对应的推送关系发送至所述代理层标识对应的目标代理层;以通过所述目标代理层将所述推送消息发送至所述客户端。本专利技术还提供了一种电子设备,所述设备包括处理器以及存储器:所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;所述处理器用于根据所述程序代码中的指令执行如上任一项所述的消息推送方法。本专利技术还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行如上任一项所述的消息推送方法。从以上技术方案可以看出,本专利技术具有以下优点:本专利技术通过采用通过预设的网关接收预设客户端针对预设频道的第一订阅请求,并将第一订阅请求发送至预设第一代理层;通过第一代理层将第一订阅请求转化为第二订阅请求,并将所述第二订阅请求发送至预设中心化组件;通过中心化组件响应第一订阅请求确定目标代理层,并判断目标代理层与第一代理层是否相同;若相同,则通过第一代理层向客户端返回订阅成功消息,并生成目标代理层与频道的订阅关系;当接收针对频道的推送请求时,基于订阅关系将推送请求发送至对应的客户端。解决了现有的消息推送方法频道与代理层的订阅关系不可控,一个频道可能会被多个代理层订阅的技术问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。图1为本专利技术实施例提供的一种消息推送方法的步骤流程图;图2为本专利技术另一实施例提供的一种消息推送方法的步骤流程图;图3为本专利技术实施例提供的一种消息推送过程的架构图;图4为本专利技术实施例提供的一种消息推送装置的结构框图。具体实施方式本专利技术实施例提供了一种消息推送方法、装置、电子本文档来自技高网...

【技术保护点】
1.一种消息推送方法,其特征在于,包括:/n通过预设的网关接收预设客户端针对预设频道的第一订阅请求,并将所述第一订阅请求发送至预设第一代理层;/n通过所述第一代理层将所述第一订阅请求转化为第二订阅请求,并将所述第二订阅请求发送至预设中心化组件;/n通过所述中心化组件响应所述第二订阅请求确定目标代理层,并判断所述目标代理层与所述第一代理层是否相同;/n若相同,则通过所述第一代理层向所述客户端返回订阅成功消息,并生成所述目标代理层与所述频道的订阅关系;/n当接收到针对所述频道的推送请求时,基于所述订阅关系将所述推送请求对应的推送消息发送至对应的客户端。/n

【技术特征摘要】
1.一种消息推送方法,其特征在于,包括:
通过预设的网关接收预设客户端针对预设频道的第一订阅请求,并将所述第一订阅请求发送至预设第一代理层;
通过所述第一代理层将所述第一订阅请求转化为第二订阅请求,并将所述第二订阅请求发送至预设中心化组件;
通过所述中心化组件响应所述第二订阅请求确定目标代理层,并判断所述目标代理层与所述第一代理层是否相同;
若相同,则通过所述第一代理层向所述客户端返回订阅成功消息,并生成所述目标代理层与所述频道的订阅关系;
当接收到针对所述频道的推送请求时,基于所述订阅关系将所述推送请求对应的推送消息发送至对应的客户端。


2.根据权利要求1所述的方法,其特征在于,还包括;
若所述目标代理层与所述第一代理层不同,则通过所述第一代理层向所述客户端返回所述目标代理层的代理层标识;所述代理层标识用于所述客户端发起二次订阅。


3.根据权利要求2所述的方法,其特征在于,所述通过所述中心化组件响应所述第二订阅请求确定目标代理层的步骤,包括:
通过所述中心化组件判断是否存在所述频道对应的订阅关系;
若是,根据所述订阅关系确定目标代理层;
若否,为所述频道分配第二代理层,将所述第二代理层作为所述频道的目标代理层。


4.根据权利要求1所述的方法,其特征在于,所述当接收到针对所述频道的推送请求时,基于所述订阅关系将所述推送请求对应的推送消息发送至所述客户端的步骤,包括:
当接收到针对所述频道的推送请求时,基于所述订阅关系获取所述频道对应的代理层标识,并将所述代理层标识发送至预设消息队列;
通过所述消息队列将所述推送请求对应的推送消息发送至所述代理层标识对应的目标代理层;以通过所述目标代理层将所述推送消息发送至所述客户端。


5.一种消息推送装置,其特征在于,包括:
第一订阅请求发送模块,用于通过预设的网关接收预设客户端针对预设频道的第一订阅请求,并将所述第一订阅请求发送至预设第一代理层;
第二订阅请求发送模块,用于通过所述第一代理层将所述第一订阅请求转化为第二订阅请求...

【专利技术属性】
技术研发人员:陈骋沈文喆吴畏
申请(专利权)人:广州趣丸网络科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1