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

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  
还行

相关推荐

    mqtt-xmeter-2.0.2-jar-with-dependencies.zip

    当两者结合,如"mqtt-xmeter-2.0.2-jar-with-dependencies.zip"所示,我们可以构建出针对MQTT服务器的高效性能测试方案。 该压缩包中的核心文件"mqtt-xmeter-2.0.2-jar-with-dependencies.jar"是一个包含所有依赖的...

    MQTT-3.1.1-CN.zip_MQTT-3.1.1-CN_MQTT-3.1.1-CN.pdf_mqtt 3.1.1 文档

    MQTT中文文档,帮助理解MQTT具体协议,用于创建服务器或者客户端

    mqtt-xmeter-2.0.2-jar-with-dependencies.jar下载

    "mqtt-xmeter-2.0.2-jar-with-dependencies.jar" 文件就是这样的一个扩展,它使得JMeter能够支持对MQTT协议的测试。 这个jar文件包含了所有必要的依赖,使用户无需额外安装其他库即可在JMeter中执行MQTT相关的测试...

    mqtt-xmeter-syl-jar-with-dependencies.rar

    本压缩包“mqtt-xmeter-syl-jar-with-dependencies.rar”包含了一个名为“mqtt-xmeter-syl-jar-with-dependencies”的文件,这很可能是一个Java应用,用于测试和分析MQTT协议的性能。 首先,我们来深入了解MQTT协议...

    mqtt-client-0.4.0

    mqtt-client-0.4.0.jar

    paho.mqtt.embedded-c-master.zip_MQTT编程_c mqtt linux_mqtt_paho mq

    标签中的“mqtt编程 c_mqtt_linux mqtt paho_mqtt zip”进一步细化了主题。`c_mqtt`指的是用C语言进行MQTT编程,`mqtt_linux`表示在Linux系统上使用MQTT,`paho_mqtt`是指使用Paho MQTT客户端库,而`zip`表明这是以...

    MQTT-3.1.1-CN(学习MQTT协议的完整中文资料)

    例如,文档中提到的MQTT-3.1.1版本,这个版本主要的改动包括增强了协议规范和改进了协议的互操作性。 由于MQTT协议具有良好的扩展性和灵活性,它在物联网(IoT)领域得到了广泛的应用。物联网中的设备往往受限于...

    mqtt-xmeter-jar-with-dependencies.jar

    jmeter-mqtt插件应用于Jmeter对mqtt服务器压力测试

    mqtt-xmeter-2.0.2-jar-with-dependencies.jar

    MQTT (Message Queue Telemetry Transport),翻译成中文就是,遥测传输协议,其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发...

    paho.mqtt.c-1.3.5.tar.gz

    1. **发布/订阅模型**:MQTT基于发布/订阅模式,其中消息发布者不会直接将消息发送给特定接收者,而是将其发布到一个主题上。订阅者则通过订阅这些主题来接收相关消息。这种解耦使得系统更加灵活和可扩展。 2. **...

    paho.mqtt.c-master.zip_C++ MQTT_C++实现MQTT_drawvvw_mqtt_mqtt c语言

    - **订阅主题**:使用`MQTTClient_subscribe()`,指定要订阅的主题和QoS级别。 - **接收消息**:注册回调函数处理接收到的消息,使用`MQTTClient_setCallback()`设置回调。 - **断开连接**:调用`MQTTClient_...

    mqtt.fx-1.7.1-windows-x64位安装包

    6. **主题树视图**:提供一个可视化主题结构,帮助用户更好地理解消息流动路径。 对于物联网开发者而言,mqtt.fx是一个强大的工具,它可以帮助测试和调试MQTT服务,确保设备能够正确地发送和接收数据。在部署物联网...

    MQTT-Client-master.rar_MQTT 服务器_MQTT client_MQTT-master_mqtt 客户

    在本压缩包“MQTT-Client-master.rar”中,包含了一个MQTT客户端的源码,适用于测试MQTT服务器的功能。 首先,我们来详细了解一下MQTT协议的关键特性: 1. **发布/订阅模式**:MQTT采用这种模式,使得消息发布者...

    paho.mqtt.cpp-master.zip

    **Paho MQTT C++ 库详解** Paho MQTT C++ 是一个开源库,它提供了C++语言对MQTT(Message Queuing Telemetry Transport)协议的支持。MQTT是一种轻量级的发布/订阅式消息传输协议,常用于物联网(IoT)、机器对机器(M...

    mqtt-client-1.3-API文档-中文版.zip

    赠送jar包:mqtt-client-1.3.jar; 赠送原API文档:mqtt-client-1.3-javadoc.jar; 赠送源代码:mqtt-client-1.3-sources.jar; 包含翻译后的API文档:mqtt-client-1.3-javadoc-API文档-中文(简体)版.zip 对应...

    paho.mqtt.embedded-c-master.zip

    6. **可配置性**:支持通过宏定义进行配置,以适应不同设备的硬件限制和性能需求。 7. **示例代码**:库通常会附带一些示例代码,帮助开发者快速理解如何使用API。 8. **跨平台**:尽管名为“嵌入式-C”,但Paho ...

    paho.mqtt.c-master.zip

    3. `examples` 目录:可能有示例代码,演示如何使用这个库连接到MQTT服务器、发布和订阅主题等操作。 4. `Makefile` 或 `CMakeLists.txt`:构建脚本,帮助用户编译和链接库文件。 5. `README` 文件:提供了关于如何...

    paho.mqtt.c-1.3.0.zip

    6. **错误处理**:提供丰富的错误代码和日志功能,帮助开发者调试和解决问题。 7. **内存管理**:库提供内存管理接口,允许用户自定义内存分配策略,以适应不同的资源受限环境。 **Paho MQTT C库在OneNet平台的...

    mqtt-client-1.5-uber.jar

    mqtt-client-1.5-uber.jar

Global site tag (gtag.js) - Google Analytics