CN111651476A - 一种物联网关中mqtt主题的快速匹配方法及系统 - Google Patents

一种物联网关中mqtt主题的快速匹配方法及系统 Download PDF

Info

Publication number
CN111651476A
CN111651476A CN202010419171.3A CN202010419171A CN111651476A CN 111651476 A CN111651476 A CN 111651476A CN 202010419171 A CN202010419171 A CN 202010419171A CN 111651476 A CN111651476 A CN 111651476A
Authority
CN
China
Prior art keywords
theme
layer
tree
matching
mqtt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010419171.3A
Other languages
English (en)
Inventor
张强强
魏志强
宋宪明
姜善宸
贾东宁
桂琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao National Laboratory for Marine Science and Technology Development Center
Original Assignee
Qingdao National Laboratory for Marine Science and Technology Development Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qingdao National Laboratory for Marine Science and Technology Development Center filed Critical Qingdao National Laboratory for Marine Science and Technology Development Center
Priority to CN202010419171.3A priority Critical patent/CN111651476A/zh
Publication of CN111651476A publication Critical patent/CN111651476A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提出一种物联网关中MQTT主题的快速匹配方法及系统,属于物联网技术领域。本发明所提出的MQTT主题的快速匹配方法基于分层主题树,通过将订阅主题进行分层并作为key构成多层有序二叉树从而形成分层主题树,再将消息主题与和分层主题树上的订阅主题进行匹配达到MQTT主题快速匹配的效果。本发明还设计利用该方法实现一种MQTT主题的快速匹配系统。本发明的有益效果:相较于传统字符串逐个比较的主题匹配方式,该发明提出的主题匹配方式能够快速高效的进行MQTT主题匹配,简化用户程序,节省物联网关的资源。

Description

一种物联网关中MQTT主题的快速匹配方法及系统
技术领域
本发明涉及物联网技术领域,具体是涉及一种物联网关中MQTT主题的快速匹配方法及系统。
背景技术
近几年来,随着物联网技术的飞速发展,万物互联已经成为了一种趋势。万物互联的关键是物联网通信,而物联网通信协议则是物联网通信的基础,在这其中又以MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议最为流行。工作在TCP协议之上的基于发布/订阅模式的MQTT协议在设计之初就充分考虑了控制器内存有限、网络带宽低以及网络不可靠情况下的数据传输问题,是实现物联网架构的理想选择。
MQTT协议是基于主题(Topic)来进行订阅和发布消息的。对于一个客户端而言,当收到一个消息时首先要对消息主题和本设备订阅主题进行匹配,匹配上了才会对消息进行处理。某些功能比较简单的客户端(如各种传感器)通常只关心几个主题,主题匹配采用简单的字符串比较就可以。而物联网关作为数据汇集的设备,通常会订阅成千上万的主题,并且受限于其紧缺的资源,继续采用效率低下的字符串逐个比较方式无法满足性能要求。另一方面,MQTT主题是以“/”为符号进行层级分隔的,并且还有“+”和“#”两种通配符,传统的哈希、树等数据结构无法直接应用于主题匹配,需要针对MQTT主题特点设计出一种专门高效的主题匹配方法。
发明内容
本发明的目的在于提供一种物联网关中MQTT主题的快速匹配方法及系统,能够快速高效的进行MQTT主题匹配。
本发明提供一种物联网关中MQTT主题的快速匹配方法,所述物联网关中 MQTT主题的快速匹配方法是一种基于分层主题树的方法,包括以下步骤:
S1:客户端创建分层主题树;
S2:客户端获得消息主题,根据主题层级分隔符“/”将消息主题分层并与分层主题树匹配。
作为本发明的进一步优化,S1进一步包括:
S10、客户端创建分层主题树第一层树根;
S11、客户端在向MQTT broker订阅一个MQTT主题时,根据主题层级分隔符“/”将订阅主题分割成若干层,然后分别将每层主题添加到对应层次的主题树中,若该主题此时不存在于相应层次的主题树当中,则自动创建,如果是最后一层主题,该主题节点还负责匹配结果的输出,需将主题回调函数同步保存到该节点。
作为本发明的进一步优化,S2进一步包括:
S20、客户端等待消息到达,当有消息到达时,解析消息获得消息主题,将消息主题分层并与分层主题树进行匹配,若匹配成功,则直接执行该订阅主题的主题回调函数,若匹配失败,则丢弃该消息;
S21、本次匹配完成,继续回到S20等待下一次匹配。
作为本发明的进一步优化,S11的具体步骤为:
S110、确定当前步骤的订阅主题和当前树根;
S111、查找订阅主题中的第一个“/”,若找到,则“/”之前的部分即为该层要添加的层主题,执行S1110;若没找到,则整个传入的订阅主题为该层要添加的层主题,执行S1111;
S1110、根据S110的树根在该树中查找要添加的层主题,若找到,则该层主题已经存在,不作操作;若没找到,则创建该层主题节点及该节点的子树根并加入当前树中,然后将“/”之后的主题作为新的要添加的层主题,并且和当前新建的子树根传入S111进行下一次添加;
S1111、该层主题是最后一层,在该树中查找该层主题,若找到,则属于重复订阅,更新该层主题节点的主题回调函数,结束;若没找到,则创建该层主题节点并将该主题回调函数加入该节点,结束。
作为本发明的进一步优化,S20的具体步骤为:
S200、确定当前步骤的消息主题和当前树根;
S201、查找消息主题中的第一个“/”,若找到,则“/”之前的部分则为当前要匹配的层主题,执行S2010;若没找到,则当前要匹配的消息主题已经到达最后一层,当前消息主题即为当前要匹配的层主题,执行S2011;
S2010、如果当前要匹配的层主题为“+”,则遍历当前树中的所有节点,每个节点跳至S200继续执行下一层匹配;如果当前要匹配的层主题为“#”,则遍历当前树中的所有节点以及所有节点的子树以及子树的子树直到最后一层,然后执行每一个最后一层结点的主题回调函数,结束;如果当前要匹配的层主题既不是“+”也不是“#”,则按照MQTT主题通配符规则,当前树中的“+”、“#”以及和要匹配的层主题字符串相同的树节点都会匹配成功,所以需分别在当前树中查找“+”、“#”和要匹配的层主题,首先跳至S20100在当前树中查找“+”;
S20100、如果找到“+”,将“/”之后的部分作为新的当前要匹配的层主题并跳至S200匹配下一层,待该匹配结束后还要继续跳至S20101在当前树中查找“#”;如果没找到“+”,则直接跳至S20101在当前树中查找“#”;
S20101、如果找到“#”,则根据MQTT主题规则此“#”应为最后一层,属于叶子结点,执行该节点的主题回调函数,并待该回调函数执行完毕后需继续跳至S20102在当前树中查找当前要匹配的层主题;如果没找到“#”,则直接跳至S20102在当前树中查找当前要匹配的层主题;
S20102、如果找到当前要匹配的层主题,则将“/”之后的部分作为新的当前要匹配的层主题并跳至S200匹配下一层,找不到则说明没有订阅这个主题,直接丢弃该消息,结束;
S2011、如果当前要匹配的层主题为“+”,则遍历当前树中的所有节点,并执行每个节点的主题回调函数,结束;如果当前要匹配的层主题为“#”,则遍历当前树中的所有节点以及所有节点的子树以及子树的子树直到最后一层,然后执行每一个最后一层结点的主题回调函数,结束;如果当前要匹配的层主题既不是“+”也不是“#”,则首先在当前树中查找“+”或“#”或当前要匹配的层主题,如果找到,则执行该节点的主题回调函数,结束,找不到则说明没有订阅这个主题,直接丢弃该消息,结束。
一种物联网关中MQTT主题的快速匹配系统,应用如权利要求1-5所述物联网关中一种MQTT主题的快速匹配方法,包括MQTT初始化模块、主题注册模块和快速匹配模块,其中,
MQTT初始化模块:为客户端提供初始化API,初始化MQTT连接,创建分层主题树第一层主题树根;
主题注册模块:为客户端提供主题注册API,客户端利用此API注册所有的订阅主题及主题回调函数,然后该模块将订阅主题进行一一分割处理并加入分层主题树对应的主题层中,构建分层主题树;
快速匹配模块:将获得的消息主题,根据主题层级分隔符“/”将消息主题分层并与分层主题树匹配,根据匹配结果进行主题回调或丢弃消息。
作为本发明的进一步优化,快速匹配模块包括主题匹配模块、网络连接与管理模块、消息处理模块、输出模块,其中,
主题匹配模块:将接收到的新消息的主题和本地分层主题树进行匹配;
网络连接与管理模块:负责客户端与MQTT broker连接的建立和保持;
消息处理模块:负责向MQTT broker订阅主题以及接收来自MQTT broker 的推送消息;
输出模块:主题匹配完成后,若匹配成功则调用主题回调函数,若匹配失败则丢弃消息并记录。
作为本发明的进一步优化,所述消息处理模块还负责向MQTT broker推送消息。
与现有技术相比,本发明的物联网关中一种MQTT主题的快速匹配方法及系统具有以下特点和优点:
1、本发明提供的基于分层树的主题匹配方法将订阅主题进行分层并构建主题分层树再将消息主题与分层主题树的层主题进行匹配,当订阅主题数量很多时,相对传统方式能够有效的提高主题匹配速度,节省物联网关有限的资源。
2、传统的匹配方式通常需要完整保存所有的订阅主题,而分层树结构则把相同层次重复的层主题只保存一份,节省了空间资源。
3、主题匹配系统为用户提供简单易用的API,用户无需关注MQTT协议方面的技术细节便可实现主题的订阅/推送以及高效的主题匹配方法,使用户可以把更多的重心放在业务方面。
结合附图阅读本发明的具体实施方式后,本发明的特点和优点将变得更加清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的分层主题树物理结构图及举例;
图2为本申请的基于分层树的主题匹配流程;
图3为本申请的将订阅主题添加到分层主题树的流程图;
图4为本申请的主题匹配算法流程图;
图5为本申请的主题匹配系统结构图。
具体实施方式
以下,结合附图对本发明的具体实施方式进行进一步的描述。
本发明提出一种物联网关中MQTT主题的快速匹配方法,该方法基于分层主题树,所述分层主题树是一种将订阅主题进行分层并作为key的多层有序二叉树,其特点是所有主题的第一层构成第一层主题树,如果某个主题不止一层,则在该层节点的基础上创建一颗子树,循环直到主题的最后一层,主题的最后一层还同步保存主题回调函数,用于主题匹配成功后的输出。
如图1所示为分层主题树的物理形态的举例,假设图中右侧列表为订阅主题,则将订阅主题按照“/”分割后,room1、room2、room3和room4组成一颗有序二叉树,构成第一层主题树,其中room4是主题的最后一层,没有子树;第二层有三个子树,分别是room1的子树light、tv、temperature、room2的子树fridge和room3的子树water,其中只有room1的light有子树,其他节点都是主题的最后一层;第三层主题树则只有light下的一颗子树,包含light1、light2、light3和light4四个节点,都是最后一层主题。
一种物联网关中MQTT主题的快速匹配方法,所述物联网关中MQTT主题的快速匹配方法是一种基于分层主题树的方法,包括以下步骤:
S1:客户端创建分层主题树;
S2:客户端获得消息主题,根据主题层级分隔符“/”将消息主题分层并与分层主题匹配。
如图2所示,一种物联网关中MQTT主题快速匹配方法具体包括以下步骤:
S10、在系统启动后,初始化分层主题树并创建第一层树根;
S11、物联网关在向MQTT broker订阅一个MQTT主题时,根据主题层级分隔符“/”将订阅主题分割成若干层,然后分别将每层主题添加到对应层次的主题树中,若此时不存在相应层次的主题树则自动创建,如果是最后一层主题,则在将该层主题添加到分层主题树的同时还将主题回调函数保存到该节点;
S20、物联网关循环等待消息到达。当有消息到达时,解析消息获得消息主题,并利用分层主题树和消息主题进行匹配,若匹配成功,则直接执行该订阅主题的主题回调函数完成业务的处理,若匹配失败则丢弃该消息;
S21、本次匹配完成,继续回到S20等待下一次匹配。
如图3所示,S11的具体步骤包括:
S110、确定当前步骤的订阅主题和当前树根;
S111、查找订阅主题中的第一个“/”,若找到,则“/”之前的部分即为该层要添加的层主题,执行S1110;若没找到,则整个传入的订阅主题为该层要添加的层主题,执行S1111;
S1110、根据S110的树根在该树中查找要添加的层主题,若找到,则该层主题已经存在,不作操作;若没找到,则创建该层主题节点及该节点的子树根并加入当前树中,然后将“/”之后的主题作为新的要添加的层主题,并且和当前新建的子树根传入S111进行下一次添加;
S1111、该层主题是最后一层,在该树中查找该层主题,若找到,则属于重复订阅,更新该层主题节点的主题回调函数,结束;若没找到,则创建该层主题节点并将该主题回调函数加入该节点,结束。
如图4所示,S20的具体步骤为:
S200、确定当前步骤的消息主题和当前树根;
S201、查找消息主题中的第一个“/”,若找到,则“/”之前的部分则为当前要匹配的层主题,执行S2010;若没找到,则当前要匹配的消息主题已经到达最后一层,当前消息主题即为当前要匹配的层主题,执行S2011;
S2010、如果当前要匹配的层主题为“+”,则遍历当前树中的所有节点,每个节点跳至S200继续执行下一层匹配;如果当前要匹配的层主题为“#”,则遍历当前树中的所有节点以及所有节点的子树以及子树的子树直到最后一层,然后执行每一个最后一层结点的主题回调函数,结束;如果当前要匹配的层主题既不是“+”也不是“#”,则按照MQTT主题通配符规则,当前树中的“+”、“#”以及和要匹配的层主题字符串相同的树节点都会匹配成功,所以需分别在当前树中查找“+”、“#”和要匹配的层主题,首先跳至S20100在当前树中查找“+”;
S20100、如果找到“+”,将“/”之后的部分作为新的当前要匹配的层主题并跳至S200匹配下一层,待该匹配结束后还要继续跳至S20101在当前树中查找“#”;如果没找到“+”,则直接跳至S20101在当前树中查找“#”;
S20101、如果找到“#”,则根据MQTT主题规则此“#”应为最后一层,属于叶子结点,执行该节点的主题回调函数,并待该回调函数执行完毕后需继续跳至S20102在当前树中查找当前要匹配的层主题;如果没找到“#”,则直接跳至S20102在当前树中查找当前要匹配的层主题;
S20102、如果找到当前要匹配的层主题,则将“/”之后的部分作为新的当前要匹配的层主题并跳至S200匹配下一层,找不到则说明没有订阅这个主题,直接丢弃该消息,结束;
S2011、如果当前要匹配的层主题为“+”,则遍历当前树中的所有节点,并执行每个节点的主题回调函数,结束;如果当前要匹配的层主题为“#”,则遍历当前树中的所有节点以及所有节点的子树以及子树的子树直到最后一层,然后执行每一个最后一层结点的主题回调函数,结束;如果当前要匹配的层主题既不是“+”也不是“#”,则首先在当前树中查找“+”或“#”或当前要匹配的层主题,如果找到,则执行该节点的主题回调函数,结束,找不到则说明没有订阅这个主题,直接丢弃该消息,结束。
该匹配方法相较于传统字符串逐个比较进行匹配的方法在订阅主题数量较多时效率提升明显,特别适用于物联网关这种资源有限、订阅主题数量多的设备,且采用分层树结构决定相同层次重复的主题只需要保存一份,更节省有限的内存空间。
如图5所示,本发明还提供一种物联网关中MQTT主题的快速匹配系统,包括MQTT初始化模块、主题注册模块和快速匹配模块,其中,快速匹配模块包括主题匹配模块、网络连接与管理模块、消息处理模块、输出模块,各个模块的作用为:MQTT初始化模块用于为客户端提供初始化API,并根据用户传入的MQTT broker IP地址或域名、本设备ID、连接保活时间、断链重连间隔及次数等相关配置信息初始化MQTT连接,以及初始化分层主题树,创建第一层树根;主题注册模块用于为客户端提供主题注册API,客户端利用此API注册所有的订阅主题及主题处理函数,然后该模块将订阅主题进行一一分割处理并加入对应的分层主题树中,构建分层主题树,该模块的工作流程如S2所述;主题匹配模块用于将MQTT broker接收到的新消息的主题和本地分层主题树进行匹配,是执行匹配算法的核心模块,该模块的工作流程如S3所述;网络连接与管理模块负责客户端与MQTT broker连接的建立和保持;消息处理模块负责向MQTT broker订阅主题、推送消息以及接收来自MQTT broker的推送消息;输出模块负责匹配完成后的工作,此时若匹配成功则调用主题回调函数,匹配失败则丢弃消息并记录。
该主题匹配系统采用了前述主题匹配方法,匹配过程效率更高,而且该系统为用户提供简单易用的API,使用户无需关注MQTT协议方面的技术细节便可实现主题的订阅或推送。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

Claims (8)

1.一种物联网关中MQTT主题的快速匹配方法,其特征在于,所述物联网关中MQTT主题的快速匹配方法是一种基于分层主题树的方法,包括以下步骤:
S1:客户端创建分层主题树;
S2:客户端获得消息主题,根据主题层级分隔符“/”将消息主题分层并与分层主题树匹配。
2.根据权利要求1所述的一种物联网关中MQTT主题的快速匹配方法,其特征在于,S1进一步包括:
S10、客户端创建分层主题树第一层树根;
S11、客户端在向MQTT broker订阅一个MQTT主题时,根据主题层级分隔符“/”将订阅主题分割成若干层,然后分别将每层主题添加到对应层次的主题树中,若该主题此时不存在于相应层次的主题树当中,则自动创建,如果是最后一层主题,该主题节点还负责匹配结果的输出,需将主题回调函数同步保存到该节点。
3.根据权利要求1所述的一种物联网关中MQTT主题的快速匹配方法,其特征在于,S2进一步包括:
S20、客户端等待消息到达,当有消息到达时,解析消息获得消息主题,将消息主题分层并与分层主题树进行匹配,若匹配成功,则直接执行该订阅主题的主题回调函数,若匹配失败,则丢弃该消息;
S21、本次匹配完成,继续回到S20等待下一次匹配。
4.根据权利要求2所述的一种物联网关中MQTT主题的快速匹配方法,其特征在于,S11的具体步骤为:
S110、确定当前步骤的订阅主题和当前树根;
S111、查找订阅主题中的第一个“/”,若找到,则“/”之前的部分即为该层要添加的层主题,执行S1110;若没找到,则整个传入的订阅主题为该层要添加的层主题,执行S1111;
S1110、根据S110的树根在该树中查找要添加的层主题,若找到,则该层主题已经存在,不作操作;若没找到,则创建该层主题节点及该节点的子树根并加入当前树中,然后将“/”之后的主题作为新的要添加的层主题,并且和当前新建的子树根传入S111进行下一次添加;
S1111、该层主题是最后一层,在该树中查找该层主题,若找到,则属于重复订阅,更新该层主题节点的主题回调函数,结束;若没找到,则创建该层主题节点并将该主题回调函数加入该节点,结束。
5.根据权利要求1所述的一种物联网关中MQTT主题的快速匹配方法,其特征在于,S20的具体步骤为:
S200、确定当前步骤的消息主题和当前树根;
S201、查找消息主题中的第一个“/”,若找到,则“/”之前的部分则为当前要匹配的层主题,执行S2010;若没找到,则当前要匹配的消息主题已经到达最后一层,当前消息主题即为当前要匹配的层主题,执行S2011;
S2010、如果当前要匹配的层主题为“+”,则遍历当前树中的所有节点,每个节点跳至S200继续执行下一层匹配;如果当前要匹配的层主题为“#”,则遍历当前树中的所有节点以及所有节点的子树以及子树的子树直到最后一层,然后执行每一个最后一层结点的主题回调函数,结束;如果当前要匹配的层主题既不是“+”也不是“#”,则按照MQTT主题通配符规则,当前树中的“+”、“#”以及和要匹配的层主题字符串相同的树节点都会匹配成功,所以需分别在当前树中查找“+”、“#”和要匹配的层主题,首先跳至S20100在当前树中查找“+”;
S20100、如果找到“+”,将“/”之后的部分作为新的当前要匹配的层主题并跳至S200匹配下一层,待该匹配结束后还要继续跳至S20101在当前树中查找“#”;如果没找到“+”,则直接跳至S20101在当前树中查找“#”;
S20101、如果找到“#”,则根据MQTT主题规则此“#”应为最后一层,属于叶子结点,执行该节点的主题回调函数,并待该回调函数执行完毕后需继续跳至S20102在当前树中查找当前要匹配的层主题;如果没找到“#”,则直接跳至S20102在当前树中查找当前要匹配的层主题;
S20102、如果找到当前要匹配的层主题,则将“/”之后的部分作为新的当前要匹配的层主题并跳至S200匹配下一层,找不到则说明没有订阅这个主题,直接丢弃该消息,结束;
S2011、如果当前要匹配的层主题为“+”,则遍历当前树中的所有节点,并执行每个节点的主题回调函数,结束;如果当前要匹配的层主题为“#”,则遍历当前树中的所有节点以及所有节点的子树以及子树的子树直到最后一层,然后执行每一个最后一层结点的主题回调函数,结束;如果当前要匹配的层主题既不是“+”也不是“#”,则首先在当前树中查找“+”或“#”或当前要匹配的层主题,如果找到,则执行该节点的主题回调函数,结束,找不到则说明没有订阅这个主题,直接丢弃该消息,结束。
6.一种物联网关中MQTT主题的快速匹配系统,应用如权利要求1-5所述物联网关中一种MQTT主题的快速匹配方法,其特征在于,包括MQTT初始化模块、主题注册模块和快速匹配模块,其中,
MQTT初始化模块:为客户端提供初始化API,初始化MQTT连接,创建分层主题树第一层主题树根;
主题注册模块:为客户端提供主题注册API,客户端利用此API注册所有的订阅主题及主题回调函数,然后该模块将订阅主题进行一一分割处理并加入分层主题树对应的主题层中,构建分层主题树;
快速匹配模块:将获得的消息主题,根据主题层级分隔符“/”将消息主题分层并与分层主题树匹配,根据匹配结果进行主题回调或丢弃消息。
7.根据权利要求6所述的一种物联网关中MQTT主题的快速匹配系统,其特征在于,快速匹配模块包括主题匹配模块、网络连接与管理模块、消息处理模块、输出模块,其中,
主题匹配模块:将接收到的新消息的主题和本地分层主题树进行匹配;
网络连接与管理模块:负责客户端与MQTT broker连接的建立和保持;
消息处理模块:负责向MQTT broker订阅主题以及接收来自MQTT broker的推送消息;
输出模块:主题匹配完成后,若匹配成功则调用主题回调函数,若匹配失败则丢弃消息并记录。
8.根据权利要求6所述的一种物联网关中MQTT主题的快速匹配系统,其特征在于,所述消息处理模块还负责向MQTT broker推送消息。
CN202010419171.3A 2020-05-18 2020-05-18 一种物联网关中mqtt主题的快速匹配方法及系统 Pending CN111651476A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010419171.3A CN111651476A (zh) 2020-05-18 2020-05-18 一种物联网关中mqtt主题的快速匹配方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010419171.3A CN111651476A (zh) 2020-05-18 2020-05-18 一种物联网关中mqtt主题的快速匹配方法及系统

Publications (1)

Publication Number Publication Date
CN111651476A true CN111651476A (zh) 2020-09-11

Family

ID=72346664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010419171.3A Pending CN111651476A (zh) 2020-05-18 2020-05-18 一种物联网关中mqtt主题的快速匹配方法及系统

Country Status (1)

Country Link
CN (1) CN111651476A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112491795A (zh) * 2020-10-27 2021-03-12 许继集团有限公司 一种边缘物联代理装置的数据打包方法及系统
CN113239307A (zh) * 2021-05-17 2021-08-10 北京百度网讯科技有限公司 用于存储消息主题的方法及装置
CN113452800A (zh) * 2021-08-31 2021-09-28 深圳市信润富联数字科技有限公司 基于MQTT协议多Broker实现负载均衡的方法
CN113783838A (zh) * 2021-08-05 2021-12-10 山东有人物联网股份有限公司 一种订阅方法、订阅控制装置及计算机可读存储介质
CN114500583A (zh) * 2021-04-26 2022-05-13 华北电力大学 一种基于mqtt协议的配电物联网实时通信方法
CN116055123A (zh) * 2022-12-21 2023-05-02 长扬科技(北京)股份有限公司 一种mqtt主题匹配方法、装置、计算设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106130882A (zh) * 2016-07-13 2016-11-16 北京百度网讯科技有限公司 用于传输消息的方法和装置
US20170244657A1 (en) * 2016-02-22 2017-08-24 International Business Machines Corporation Message delivery in a message system
US20180167476A1 (en) * 2016-12-12 2018-06-14 Sap Se Meta broker for publish-subscribe-based messaging
CN109428922A (zh) * 2017-08-29 2019-03-05 华为技术有限公司 一种订阅发布方法及服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170244657A1 (en) * 2016-02-22 2017-08-24 International Business Machines Corporation Message delivery in a message system
CN106130882A (zh) * 2016-07-13 2016-11-16 北京百度网讯科技有限公司 用于传输消息的方法和装置
US20180167476A1 (en) * 2016-12-12 2018-06-14 Sap Se Meta broker for publish-subscribe-based messaging
CN109428922A (zh) * 2017-08-29 2019-03-05 华为技术有限公司 一种订阅发布方法及服务器

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112491795A (zh) * 2020-10-27 2021-03-12 许继集团有限公司 一种边缘物联代理装置的数据打包方法及系统
CN114500583A (zh) * 2021-04-26 2022-05-13 华北电力大学 一种基于mqtt协议的配电物联网实时通信方法
CN113239307A (zh) * 2021-05-17 2021-08-10 北京百度网讯科技有限公司 用于存储消息主题的方法及装置
CN113783838A (zh) * 2021-08-05 2021-12-10 山东有人物联网股份有限公司 一种订阅方法、订阅控制装置及计算机可读存储介质
CN113783838B (zh) * 2021-08-05 2024-02-06 山东有人物联网股份有限公司 一种订阅方法、订阅控制装置及计算机可读存储介质
CN113452800A (zh) * 2021-08-31 2021-09-28 深圳市信润富联数字科技有限公司 基于MQTT协议多Broker实现负载均衡的方法
CN113452800B (zh) * 2021-08-31 2021-11-30 深圳市信润富联数字科技有限公司 基于MQTT协议多Broker实现负载均衡的方法
CN116055123A (zh) * 2022-12-21 2023-05-02 长扬科技(北京)股份有限公司 一种mqtt主题匹配方法、装置、计算设备及存储介质
CN116055123B (zh) * 2022-12-21 2023-08-22 长扬科技(北京)股份有限公司 一种mqtt主题匹配方法、装置、计算设备及存储介质

Similar Documents

Publication Publication Date Title
CN111651476A (zh) 一种物联网关中mqtt主题的快速匹配方法及系统
Banavar et al. An efficient multicast protocol for content-based publish-subscribe systems
CN108809830B (zh) 一种实现OpenFlow的软件定义网络中报文排序的方法和网络设备
US7702744B2 (en) Semantic information network (SION)
US20100027442A1 (en) Constructing scalable overlays for pub-sub with many topics: the greedy join-leave algorithm
KR20050063405A (ko) 온톨로지 기반의 애드혹 서비스 검색 시스템 및 방법
US6970971B1 (en) Method and apparatus for mapping prefixes and values of a hierarchical space to other representations
CN110619066A (zh) 一种基于目录树的信息获取方法和装置
CN105227386A (zh) 用于分群体统计在线用户数的方法、装置及系统
Lee et al. Service composition techniques using data mining for ubiquitous computing environments
US8738801B2 (en) Methods and apparatus for updating index information while adding and updating documents in a distributed network
US20230038310A1 (en) Devices, Methods, and System for Heterogeneous Data-Adaptive Federated Learning
US20120131046A1 (en) Fast matching for content-based addressing
CN107968798A (zh) 一种网管资源标签获取方法、缓存同步方法、装置及系统
US8732320B2 (en) Fast content-based routing
Baloch et al. Addressing context dependency using profile context in overlay networks
CN110516141B (zh) 数据查询方法、装置、电子设备以及可读存储介质
CN114500583A (zh) 一种基于mqtt协议的配电物联网实时通信方法
Liu et al. Overlay automata and algorithms for fast and scalable regular expression matching
CN112383629B (zh) 一种高效可迁移的MQTT Broker订阅树实现方法
EP2641186B1 (en) Fast content-based routing
CN114866597B (zh) 一种分组管理客户端连接方法以及系统
US20050257155A1 (en) Method, system and program product for learning computer-generated screens based on user key selections
CN113821361B (zh) 一种基于流式处理的物联网平台消息处理方法和系统
Iqbal et al. Removing the redundancy from distributed semantic web data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination