一种订阅发布方法及服务器技术

技术编号:26606612 阅读:28 留言:0更新日期:2020-12-04 21:31
本申请实施例公开了一种订阅发布方法及服务器,涉及通信领域,解决了在订阅客户端订阅能处理的发布消息的情况下,订阅客户端上的订阅关系维护较困难的问题。具体方案为:服务器接收发布客户端发送的发布消息,并根据接收到的发布消息获取该发布客户端的标识,且服务器可以根据该发布消息中的主题名获得订阅客户端的标识,并根据该订阅客户端的标识获取与该订阅客户端的标识对应的第一标签,以及根据发布客户端的标识获取与发布客户端的标识对应的第二标签,这样服务器可以将获取到的第一标签与第二标签进行匹配,并在确定第一标签和第二标签匹配成功的情况下,向订阅客户端发送发布消息。

【技术实现步骤摘要】
一种订阅发布方法及服务器相关申请的交叉引用本申请为于2017年8月29日提交,申请号为CN201710757780.8,专利技术名称为“一种订阅发布方法及服务器”的中国专利申请的分案,其全部内容通过引用结合在本申请中。
本申请实施例涉及通信领域,尤其涉及一种订阅发布方法及服务器。
技术介绍
消息队列遥测传输(MessageQueueTelemetryTransport,MQTT)协议是一种发布订阅机制的消息传输协议,该发布订阅机制为:手机、笔记本等具有管理功能的订阅终端上的订阅客户端可以向服务器发送包含有主题的订阅消息,温度传感器等发布终端上的发布客户端可以向该服务器发送包含有主题的发布消息,这样服务器可以向订阅了发布消息中包含的主题的订阅客户端发送该发布消息。且MQTT协议具有轻巧、开放、简单、规范等特点,可以应用于机器与机器的通信(machine-to-machine,M2M)、物联网(internetofthings,IOT)等受限的环境中。在IOT环境中,订阅终端上的订阅客户端通常用于通过发布终端上的发布客户端管理大量发布终端。一个订阅客户端可以通过一个包含有通配符的主题来订阅IOT环境中的所有发布客户端发布的消息,并对接收到的所有发布消息进行扇入(fanin)处理,扇入的过程为:订阅客户端可以对所有发布消息进行汇聚、统计等复杂运算,并将运算结果形成图标或页面呈现给用户,或将运算结果发送至下一层设备。显而易见的,此时订阅客户端处理发布消息的压力与发布客户端的数量成正比,但是订阅客户端处理发布消息的能力是有限的,因此当发布客户端的数量达到一定规模时,一个订阅客户端无法处理所有的发布消息,便需要增加订阅客户端,与该订阅客户端并行处理发布消息。此时,订阅客户端从“能订阅哪些发布消息”变为“能处理哪些发布消息”,这样订阅客户端如何订阅能处理的发布消息便成为了关键。现有技术中提供了两种订阅客户端订阅能处理的发布消息的方案:在现有技术一中,订阅客户端可以根据处理发布消息的能力,逐个订阅每个发布客户端的发布消息,即订阅客户端能够处理几条发布消息,便向服务器发送几个订阅主题,每个订阅主题中都不包含通配符。在现有技术二中,订阅客户端将不同的发布客户端划分到不同的区域中,使得发布客户端在发布主题中携带区域标识,同时订阅客户端根据订阅客户端处理发布消息的能力确定能处理哪些区域的发布消息,并在订阅主题中增加这些区域标识。现有技术中至少存在以下问题:现有技术一中,由于订阅客户端需要向服务器逐个发送订阅主题,使得在订阅客户端扩容、迁移等的情况下,需要更改订阅客户端的订阅关系,即订阅客户端先取消订阅再重新订阅,因此导致订阅客户端上的订阅关系维护较困难。现有技术二中,由于区域是由订阅客户端划分的,在订阅客户端扩容、迁移等的情况下,订阅客户端需要重新划分区域并发布订阅消息,因此导致订阅客户端上的订阅关系维护较困难。
技术实现思路
本申请提供一种订阅发布方法及服务器,解决了在订阅客户端订阅能处理的发布消息的情况下,订阅客户端上的订阅关系维护较困难的问题。为达到上述目的,本申请采用了权利要求书中提供的技术方案。本申请的第一方面,提供一种订阅发布方法,包括:服务器可以接收发布客户端发送的包括有主题名的发布消息,并根据接收到的发布消息获取该发布客户端的标识,且服务器可以根据该发布消息中的主题名查找订阅树,获得订阅客户端的标识,并根据该订阅客户端的标识以及第一映射表获取与该订阅客户端的标识对应的第一标签,以及根据发布客户端的标识以及第一映射表获取与发布客户端的标识对应的第二标签,且服务器将获取的第一标签与第二标签进行匹配,并在确定第一标签和第二标签匹配成功的情况下,向订阅客户端发送发布消息。其中,订阅树为至少一个主题过滤器组成的拓扑结构,订阅客户端的标识为与主题名匹配成功的一个主题过滤器对应的标识。第一映射表的每个表项包括客户端的标识与对应的标签。标签用于指示与标签对应的客户端的至少一种属性信息。本申请提供的订阅发布方法,服务器在接收到发布客户端发送的包括有主题名的发布消息,并根据发布消息获取到该发布客户端的标识后,可以根据主题名查找订阅树,获得与主题名匹配成功的一个主题过滤器对应的订阅客户端的标识,并在根据订阅客户端的标识和第一映射表获取到第一标签,根据发布客户端的标识和第一映射表获取到第二标签后,将第一标签和第二标签进行匹配,且服务器在确定第一标签和第二标签匹配成功的情况下,向订阅客户端发送发布消息。本申请中预先在服务器中存储记录了客户端标识与标签的对应关系的第一映射表,服务器可以在主题名与主题过滤器匹配成功的情况下,匹配发布客户端和订阅客户端的属性信息,并在发布客户端与订阅客户端的属性信息匹配成功时,向订阅客户端发送发布消息。这样,在订阅客户端迁移,扩容时,订阅客户端也不需要重新发布订阅消息,仅更改客户端的属性信息即可,从而解决了订阅客户端自己维护订阅关系导致的维护困难的问题。且,本申请中客户端的属性信息为包括有区域的多种信息,与现有技术中仅能匹配区域相比,可以使订阅客户端获得更多维度的发布消息,即实现更多维度的订阅,扩展性更好。结合第一方面,在一种可能的实现方式中,服务器根据订阅客户端的标识以及第一映射表获取与订阅客户端的标识对应的第一标签,具体的可以包括:服务器在确定订阅客户端支持标签匹配的情况下,根据订阅客户端的标识以及第一映射表获取第一标签。结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,本申请还可以包括:服务器在确定订阅客户端不支持标签匹配的情况下,可以向订阅客户端发送发布消息。这样,由于客户端的标签是维护在服务器中的,与现有技术二中的在主题中携带区域标识相比,实现了现有技术中原有的仅支持主题匹配的订阅发布机制的保留。结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在服务器根据主题名查找订阅树,获得订阅客户端的标识之前,还可以包括:服务器接收订阅客户端发送的包括有至少一个主题过滤器的订阅消息,并根据接收到的订阅消息获取订阅客户端的标识。结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,每个主题过滤器被分为多层,每层为一个主题层级,每个主题层级存储于所述订阅树的一个子树中,本申请还可以包括:服务器可以在确定至少一个主题过滤器中的第一主题过滤器支持标签匹配时,将第一主题过滤器关联到订阅树上,并在订阅树中存储有第一主题过滤器的最后一个主题层级的子树中保存订阅客户端的信息,该订阅客户端的信息可以包括:订阅客户端的标识和用于指示订阅客户端支持标签匹配的指示信息。其中,第一主题过滤器为至少一个主题过滤器中的任意一个。结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,订阅消息中还可以包括:第一标志位。该第一标志位包括第一值或者第二值,第一值用于指示至少一个主题过滤器中的每个主题过滤器支持标签匹配,第二值用于指示至少一个主题过滤器中包括至少一个不支持标签匹配的主题过滤器。...

【技术保护点】
1.一种订阅发布方法,其特征在于,包括:/n服务器接收发布客户端发送的发布消息,所述发布消息中包括主题名;/n所述服务器根据所述发布消息获取所述发布客户端的标识;/n所述服务器根据所述主题名获得订阅客户端的标识;/n所述服务器根据所述订阅客户端的标识获取与所述订阅客户端的标识对应的第一标签;所述第一标签用于指示所述订阅客户端的至少一种属性信息;/n所述服务器根据所述发布客户端的标识获取与所述发布客户端的标识对应的第二标签;所述第二标签用于指示所述发布客户端的至少一种属性信息;/n所述服务器在确定所述第一标签和所述第二标签匹配的情况下,向所述订阅客户端发送所述发布消息。/n

【技术特征摘要】
1.一种订阅发布方法,其特征在于,包括:
服务器接收发布客户端发送的发布消息,所述发布消息中包括主题名;
所述服务器根据所述发布消息获取所述发布客户端的标识;
所述服务器根据所述主题名获得订阅客户端的标识;
所述服务器根据所述订阅客户端的标识获取与所述订阅客户端的标识对应的第一标签;所述第一标签用于指示所述订阅客户端的至少一种属性信息;
所述服务器根据所述发布客户端的标识获取与所述发布客户端的标识对应的第二标签;所述第二标签用于指示所述发布客户端的至少一种属性信息;
所述服务器在确定所述第一标签和所述第二标签匹配的情况下,向所述订阅客户端发送所述发布消息。


2.根据权利要求1所述的方法,其特征在于,所述服务器根据所述主题名获得订阅客户端的标识包括:
所述服务器根据所述主题名查找订阅树,获得所述订阅客户端的标识,所述订阅树为至少一个主题过滤器组成的拓扑结构,所述订阅客户端的标识为与所述主题名匹配的一个主题过滤器对应的标识。


3.根据权利要求1或2所述的方法,其特征在于,
所述服务器根据所述订阅客户端的标识获取与所述订阅客户端的标识对应的第一标签包括:所述服务器根据所述订阅客户端的标识以及第一映射表获取所述第一标签,所述第一映射表的每个表项包括客户端的标识与对应的标签;
所述服务器根据所述发布客户端的标识获取与所述发布客户端的标识对应的第二标签包括:所述服务器根据所述发布客户端的标识以及所述第一映射表获取所述第二标签。


4.根据权利要求3所述的方法,其特征在于,所述服务器根据所述订阅客户端的标识以及第一映射表获取所述第一标签之前,所述方法还包括:
所述服务器确定所述订阅客户端支持标签匹配。


5.根据权利要求1-4中任意一项所述的方法,其特征在于,在所述服务器根据所述主题名获得所述订阅客户端的标识之前,所述方法还包括:
所述服务器接收所述订阅客户端发送的订阅消息,所述订阅消息中包括至少一个主题过滤器;
所述服务器根据所述订阅消息获取所述订阅客户端的标识。


6.根据权利要求5所述的方法,其特征在于,每个主题过滤器被分为多层,每层为一个主题层级,每个主题层级存储于所述订阅树的一个子树中,所述方法还包括:
所述服务器在确定所述至少一个主题过滤器中的第一主题过滤器支持标签匹配时,将所述第一主题过滤器关联到所述订阅树上,并在所述订阅树中存储有所述第一主题过滤器的最后一个主题层级的子树中保存所述订阅客户端的信息,所述订阅客户端的信息包括:所述订阅客户端的标识和用于指示所述订阅客户端支持标签匹配的指示信息,所述第一主题过滤器为所述至少一个主题过滤器中的任意一个。


7.根据权利要求6所述的方法,其特征在于,所述订阅消息中还包括:第一标志位,所述第一标志位包括第一值或者第二值,所述第一值用于指示所述至少一个主题过滤器中的每个主题过滤器支持标签匹配,所述第二值用于指示所述至少一个主题过滤器中包括至少一个不支持标签匹配的主题过滤器。


8.根据权利要求7所述的方法,其特征在于,所述确定所述至少一个主题过滤器中的第一主题过滤器支持标签匹配,包括:
所述服务器在确定所述第一标志位包括所述第一值时,确定所述第一主题过滤器支持...

【专利技术属性】
技术研发人员:许金川吴英德
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1