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
分享到:
相关推荐
当两者结合,如"mqtt-xmeter-2.0.2-jar-with-dependencies.zip"所示,我们可以构建出针对MQTT服务器的高效性能测试方案。 该压缩包中的核心文件"mqtt-xmeter-2.0.2-jar-with-dependencies.jar"是一个包含所有依赖的...
MQTT中文文档,帮助理解MQTT具体协议,用于创建服务器或者客户端
"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”的文件,这很可能是一个Java应用,用于测试和分析MQTT协议的性能。 首先,我们来深入了解MQTT协议...
mqtt-client-0.4.0.jar
标签中的“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版本,这个版本主要的改动包括增强了协议规范和改进了协议的互操作性。 由于MQTT协议具有良好的扩展性和灵活性,它在物联网(IoT)领域得到了广泛的应用。物联网中的设备往往受限于...
jmeter-mqtt插件应用于Jmeter对mqtt服务器压力测试
MQTT (Message Queue Telemetry Transport),翻译成中文就是,遥测传输协议,其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发...
1. **发布/订阅模型**:MQTT基于发布/订阅模式,其中消息发布者不会直接将消息发送给特定接收者,而是将其发布到一个主题上。订阅者则通过订阅这些主题来接收相关消息。这种解耦使得系统更加灵活和可扩展。 2. **...
- **订阅主题**:使用`MQTTClient_subscribe()`,指定要订阅的主题和QoS级别。 - **接收消息**:注册回调函数处理接收到的消息,使用`MQTTClient_setCallback()`设置回调。 - **断开连接**:调用`MQTTClient_...
6. **主题树视图**:提供一个可视化主题结构,帮助用户更好地理解消息流动路径。 对于物联网开发者而言,mqtt.fx是一个强大的工具,它可以帮助测试和调试MQTT服务,确保设备能够正确地发送和接收数据。在部署物联网...
在本压缩包“MQTT-Client-master.rar”中,包含了一个MQTT客户端的源码,适用于测试MQTT服务器的功能。 首先,我们来详细了解一下MQTT协议的关键特性: 1. **发布/订阅模式**:MQTT采用这种模式,使得消息发布者...
**Paho MQTT C++ 库详解** Paho MQTT C++ 是一个开源库,它提供了C++语言对MQTT(Message Queuing Telemetry Transport)协议的支持。MQTT是一种轻量级的发布/订阅式消息传输协议,常用于物联网(IoT)、机器对机器(M...
赠送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 对应...
6. **可配置性**:支持通过宏定义进行配置,以适应不同设备的硬件限制和性能需求。 7. **示例代码**:库通常会附带一些示例代码,帮助开发者快速理解如何使用API。 8. **跨平台**:尽管名为“嵌入式-C”,但Paho ...
3. `examples` 目录:可能有示例代码,演示如何使用这个库连接到MQTT服务器、发布和订阅主题等操作。 4. `Makefile` 或 `CMakeLists.txt`:构建脚本,帮助用户编译和链接库文件。 5. `README` 文件:提供了关于如何...
6. **错误处理**:提供丰富的错误代码和日志功能,帮助开发者调试和解决问题。 7. **内存管理**:库提供内存管理接口,允许用户自定义内存分配策略,以适应不同的资源受限环境。 **Paho MQTT C库在OneNet平台的...
mqtt-client-1.5-uber.jar