[发明专利]一种消息推送方法及系统有效
申请号: | 201810561163.5 | 申请日: | 2018-06-04 |
公开(公告)号: | CN110557423B | 公开(公告)日: | 2022-02-11 |
发明(设计)人: | 杨翼 | 申请(专利权)人: | 珠海全志科技股份有限公司 |
主分类号: | H04L67/51 | 分类号: | H04L67/51;H04L67/55 |
代理公司: | 广东深宏盾律师事务所 44364 | 代理人: | 赵琼花 |
地址: | 519085 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 推送 方法 系统 | ||
1.一种消息推送方法,其特征在于:
包括以下步骤:
基于MQTT协议与客户端建立通信连接;
接收客户端订阅的主题;
解析客户端订阅的主题,确定该主题与订阅该主题的客户端之间的订阅关系;
将订阅关系存储到Redis数据库内共享的订阅关系树中,所述订阅关系树包含了订阅主题树、订阅客户端树,所述订阅主题树依据主题的层级结构建立,是以被订阅的主题为VALUE的数据结构,所述订阅客户端树是以所述订阅主题树中的VALUE为KEY的数据结构,所述订阅客户端树中的KEY的VALUE为订阅该KEY的客户端的id所述订阅主题树中的VALUE以该VALUE的上一级的主题为KEY;
获取消息,从所述订阅关系树中获取与所述消息的主题相对应的订阅关系,依据订阅关系将所述消息的有效载荷推送至相应的客户端;
所述从所述订阅关系树中获取与所述消息的主题相对应的订阅关系,依据订阅关系将所述消息的有效载荷推送至相应的客户端的步骤包含:
查询所述订阅主题树,从所述订阅主题树中找到与所述消息相对应的VALUE;
以该VALUE作为所述订阅客户端树的KEY,查找该KEY在所述订阅客户端树中的所有VALUE;
判断该KEY在所述订阅客户端树中的所有VALUE中是否存在本地的客户端id;若为是,则依据所述的本地的客户端id将所述消息的有效载荷推送至相应的客户端。
2.根据权利要求1所述的消息推送方法,其特征在于:
所述将订阅关系存储到Redis数据库内共享的订阅关系树中的步骤包含:
判断该主题是否已是所述订阅主题树中的VALUE;若为是,则查找所述订阅客户端树中与该主题相对应的KEY;若为否,则将该主题设置为所述订阅主题树中的VALUE,并将该主题设置为所述订阅客户端树中的KEY;
将订阅该主题的客户端id记为所述订阅客户端树中相对应的KEY的VALUE。
3.根据权利要求1所述的消息推送方法,其特征在于:
还包括以下步骤:
将与客户端之间的会话信息存储到Redis数据库中。
4.根据权利要求1所述的消息推送方法,其特征在于:
推送客户端发布的消息。
5.一种消息推送方法,其特征在于:
与客户端建立通信连接;
将与客户端之间的会话信息存储到非关系型数据库中;
接收客户端发出的消息订阅请求;
解析消息订阅请求,确定消息与订阅该消息的客户端之间的订阅关系,所述订阅关系树包含了订阅主题树、订阅客户端树,所述订阅主题树依据主题的层级结构建立,是以被订阅的主题为VALUE的数据结构,所述订阅客户端树是以所述订阅主题树中的VALUE为KEY的数据结构,所述订阅客户端树中的KEY的VALUE为订阅该KEY的客户端的id,所述订阅主题树中的VALUE以该VALUE的上一级的主题为KEY;
将订阅关系存储到非关系型数据库内共享的订阅关系树中;
获取消息,并从订阅关系树中获取与该消息相对应的订阅关系,依据订阅关系将该消息推送至相应的客户端;
所述从订阅关系树中获取与该消息相对应的订阅关系,依据订阅关系将该消息推送至相应的客户端的步骤包含:
查询所述订阅主题树,从所述订阅主题树中找到与所述消息相对应的VALUE;
以该VALUE作为所述订阅客户端树的KEY,查找该KEY在所述订阅客户端树中的所有VALUE;
判断该KEY在所述订阅客户端树中的所有VALUE中是否存在本地的客户端id;若为是,则依据所述的本地的客户端id将所述消息的有效载荷推送至相应的客户端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海全志科技股份有限公司,未经珠海全志科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810561163.5/1.html,转载请声明来源钻瓜专利网。