`
rensanning
  • 浏览: 3571996 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:38642
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:609251
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:684798
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:90687
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:403376
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:70018
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:92434
社区版块
存档分类
最新评论

MQTT入门(6)- 主题Topics

 
阅读更多
MQTT是基于topic来发布消息的,发布者在发布消息时需要指定该消息发布在哪个topic下。

topic最容易的理解方式是文件夹路径。如果有成千上万的不同类型的文件要保存,为了合理放置这些文件,需要创建一系列有层次性的文件夹来管理它们。发布消息就好比把文件保存到不同的文件夹下。

和文件夹类似,topic有主题级别,各级别之间是以斜杠(/)来分隔的。
比如: rensanning/home/room1/light/brightness 就有5个级别。
  • 第1层:用户
  • 第2层:场所
  • 第3层:位置
  • 第4层:物件
  • 第5层:数据指标




(1)topic名是大小写敏感的。
比如以下四个是分别不同的主题:
引用
room1/light/brightness
room1/Light/brightness
Room1/light/brightness
Room1/Light/Brightness


(2)topic名中的每个主题级别可以使用任何UTF-8字符。

(3)尽可能避免使用美元符$开头。
因为一般MQTT服务器都会使用$开头的topic存储统计信息。

比如:$SYS主题
用于存贮Broker的运行信息,只读topic不能往里publish消息。
$SYS主题有很多,具体可以参考:
http://mosquitto.org/man/mosquitto-8.html
https://github.com/mqtt/mqtt.github.io/wiki/SYS-Topics

(4)通配符:+、#
基于主题的消息过滤,可以使用通配符来订阅多个主题的消息。

但是发布消息时,不可以使用通配符,必须指定完整的topic名,如果想发送给多个topic,需要发布多次。

加号+:单层匹配


井号#:多层匹配,多用于前方一致的匹配


准确匹配一个topic:


匹配所有topic:

  • 大小: 3.6 KB
  • 大小: 6.2 KB
  • 大小: 6.5 KB
  • 大小: 6.2 KB
  • 大小: 5.6 KB
分享到:
评论
2 楼 ipodao 2018-12-20  
写的很是清楚了,我找到一份中文协议:
https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/01-Introduction.html
1 楼 Cavani_cc 2018-09-29  
还行

相关推荐

    1200 appinventor项目:MQTT即时通信

    发布者发送消息到特定的主题(Topics),订阅者则订阅感兴趣的主题以接收消息。代理作为中间人,负责路由消息到正确的订阅者。 在App Inventor中实现MQTT通信,可能需要用到第三方组件,如MAPIE(MAPI for App ...

    ActiveMQ实践入门指南_ActiveMQ实践入门指南_源码

    ActiveMQ是Apache软件基金会的一个项目,它遵循JMS规范,支持多种协议,包括OpenWire、STOMP、AMQP、MQTT和WS-Messaging。ActiveMQ不仅提供了消息传递的功能,还支持发布/订阅和点对点模式,可以处理事务、持久化和...

    HETF-ActiveMQ入门手册.zip

    2. **主题(Topics)与队列(Queues)**:主题支持发布/订阅模式,一条消息可以被多个消费者接收;队列则遵循FIFO(先进先出)原则,每条消息仅被一个消费者接收。 3. **持久化(Persistence)**:ActiveMQ可以将...

    activemq入门实例

    ActiveMQ是一个高性能、灵活且功能丰富的消息代理,支持多种消息协议,如OpenWire、STOMP、AMQP、MQTT等,使得不同平台和语言的应用可以方便地进行通信。它提供了多种消息模型,包括点对点(Point-to-Point)、发布/...

    铅笔头识别数据集,1692张原始训练图,640*640分辨率,91.1%的正确识别率,标注支持coco json格式

    铅笔头识别数据集,1692张原始训练图,640*640分辨率,91.1%的正确识别率,标注支持coco json格式

    高校网络教学的体系规划与创建.docx

    高校网络教学的体系规划与创建.docx

    SpringBoot的学生心理咨询评估系统,你看这篇就够了(附源码)

    SpringBoot的学生心理咨询评估系统,你看这篇就够了(附源码)

    遗传算法优化BP神经网络提升交通流量预测精度的技术实现与应用

    内容概要:本文详细介绍了如何使用遗传算法优化BP神经网络,以提高交通流量预测的准确性。文中首先解释了BP神经网络的基本结构及其局限性,即容易陷入局部最优解的问题。随后,作者展示了遗传算法的工作原理,并将其应用于优化BP神经网络的权重和偏置。通过定义适应度函数、选择、交叉和变异等步骤,实现了对BP神经网络的有效改进。实验结果显示,优化后的BP神经网络在交通流量预测中的精度显著高于传统的BP神经网络,特别是在处理复杂的非线性问题时表现出色。 适用人群:对机器学习、深度学习以及交通流量预测感兴趣的科研人员和技术开发者。 使用场景及目标:适用于需要进行精确交通流量预测的应用场景,如智能交通系统、城市规划等领域。主要目标是通过遗传算法优化BP神经网络,解决其易陷入局部最优的问题,从而提高预测精度和稳定性。 其他说明:文中提供了详细的Python代码实现,帮助读者更好地理解和实践这一优化方法。同时,强调了遗传算法在全局搜索方面的优势,以及其与BP神经网络结合所带来的性能提升。此外,还讨论了一些具体的实施技巧,如适应度函数的设计、交叉和变异操作的选择等。 标签1,标签2,标签3,标签4,标签5

    H5U PLC与触摸屏集成框架:总线伺服控制及跨平台移植的最佳实践

    内容概要:本文详细介绍了H5U框架在PLC与触摸屏集成方面的应用,特别是在总线伺服控制和跨平台移植方面。文章首先解析了伺服控制的核心代码,如使能模块和绝对定位指令,强调了标准化控制流程的优势。接着讨论了触摸屏交互,通过直接映射PLC的DB块地址简化了数据处理。然后介绍了总线配置,尤其是EtherCAT总线初始化及其容错设计。此外,文章还探讨了框架的移植性和报警处理设计,展示了其在不同PLC品牌间的易用性和高效的故障恢复能力。 适合人群:从事工业自动化领域的工程师和技术人员,特别是有PLC编程经验和需要进行伺服控制系统开发的人群。 使用场景及目标:①快速搭建和调试基于PLC和触摸屏的自动化控制系统;②提高多轴设备的调试效率;③实现跨平台的无缝移植;④优化报警管理和故障恢复机制。 其他说明:该框架不仅提供了详细的代码示例和注释,还包含了丰富的实战经验和最佳实践,使得新手能够快速上手,而资深工程师可以在此基础上进一步创新。

    游戏开发UE5引擎核心技术解析与应用:涵盖安装配置、项目创建及蓝图编辑器详解文档的主要内容

    内容概要:本文档《UE5开发.txt》全面介绍了Unreal Engine 5(UE5)的基本概念、安装配置、项目创建、文件结构及常用功能。UE5是一款强大的游戏引擎,支持实时渲染、蓝图创作、C++编程等功能。文档详细描述了UE5的安装步骤,包括硬件要求和环境配置;项目创建过程,涵盖项目模板选择、质量预设、光线追踪等设置;文件结构解析,重点介绍了Config、Content和.uproject文件的重要性。此外,文档深入讲解了蓝图编辑器的使用,包括变量、数组、集合、字典等数据类型的操作,以及事件、函数、宏和事件分发器的应用。蓝图作为一种可视化脚本工具,使开发者无需编写C++代码即可快速创建逻辑,适用于快速开发和迭代。 适合人群:具备一定编程基础的游戏开发者、设计师和对游戏开发感兴趣的初学者,尤其是希望深入了解UE5引擎及其蓝图系

    餐馆点菜系统概要设计说明书.doc

    餐馆点菜系统概要设计说明书.doc

    5+1档轿车手动变速箱设计说明书.doc

    5+1档轿车手动变速箱设计说明书.doc

    1万吨自来水厂详细设计说明书.doc

    1万吨自来水厂详细设计说明书.doc

    wordpress外贸电商企业产品主题

    wordpress外贸电商企业产品主题 页面展示图https://i-blink.csdnimg.cn/direct/e45b2e2e8e27423eb79bda5f4c1216d7.png

    低效林改造作业设计说明书.doc

    低效林改造作业设计说明书.doc

    西门子200smart编程软件V2.8.2.1

    西门子200smart编程软件V2.8.2.1

    135调速器操纵手柄 设计说明书.doc

    135调速器操纵手柄 设计说明书.doc

    蓝桥杯全国软件和信息技术专业人才竞赛指导文档.pdf

    内容概要:本文档为蓝桥杯全国软件和信息技术专业人才竞赛提供了全面的指导,涵盖竞赛概述、流程与规则、核心考点与备赛策略、实战技巧与避坑指南以及备赛资源推荐。蓝桥杯竞赛由工信部人才交流中心主办,涉及算法设计、软件开发、嵌入式系统、电子设计等领域。文档详细介绍了参赛流程(报名、省赛、国赛、国际赛),并针对软件类和电子类竞赛分别阐述了高频考点和备赛建议。对于软件类,强调了算法与数据结构的重要性,如排序、动态规划、图论等;对于电子类,则侧重于硬件基础和开发工具的使用。此外,还提供了详细的答题策略、常见陷阱规避方法及工具调试技巧。; 适合人群:高校本专科生、研究生,尤其是对算法设计、软件开发、嵌入式系统等领域感兴趣的计算机科学及相关专业的学生。; 使用场景及目标:①帮助参赛选手熟悉竞赛流程和规则,明确各阶段任务;②提供系统的备赛策略,包括高频考点的学习和专项突破;③指导选手掌握实战技巧,避免常见错误,提高答题效率和准确性。; 阅读建议:此文档不仅提供了理论知识,还包含了大量实战经验和备赛资源推荐,建议读者结合自身情况制定个性化的备赛计划,充分利用提供的资源进行练习和准备。

    基于行块抽取正文内容的java版本的改进算法.zip

    基于行块抽取正文内容的java版本的改进算法.zip

    基于S7-200 PLC和MCGS的快递分拣系统设计与实现:硬件配置、梯形图编程及组态应用

    内容概要:本文详细介绍了基于西门子S7-200 PLC和MCGS组态软件的快递分拣系统的设计与实现方法。首先阐述了硬件配置的关键要点,包括IO分配表的具体设置以及传感器和执行机构的连接方式。接着深入解析了PLC程序中的梯形图逻辑,涵盖主传送带的连锁保护、机械臂动作的自保持逻辑和安全复位机制等核心部分。同时探讨了MCGS组态画面的应用,展示了如何通过脚本实现动态效果和数据统计功能。此外,文中还分享了一些调试经验和常见问题的解决方案,如防止传感器抖动、优化数据传输效率等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC编程和组态软件有一定了解的人群。 使用场景及目标:适用于需要构建高效可靠的快递分拣系统的物流企业或相关项目开发者。目标是帮助读者掌握从硬件选型到软件编程的一整套实施流程,确保系统能够稳定运行并达到预期性能指标。 其他说明:文章不仅提供了理论指导,还结合实际案例进行了详细的步骤讲解,有助于读者更好地理解和应用于实践中。

Global site tag (gtag.js) - Google Analytics