MQTT
MQTT (Message Queuing Telemetry Transport) 是一种基于发布/订阅模式的“轻量级”通讯协议,它构建于 TCP/IP 之上,是物联网(IoT)领域最主流的通信标准之一。
🤔 MQTT 是什么?
你可以把 MQTT 想象成一个“邮局系统”:
- 代理 (Broker):这就是“邮局”。它负责接收所有消息,并根据规则将它们分发给正确的收件人。
- 发布者 (Publisher):这就是“寄信人”。它不关心谁收信,只负责把信(消息)寄到某个“邮箱”(主题)。例如,一个温度传感器可以扮演发布者,不断向
home/livingroom/temperature这个主题发送温度数据。 - 订阅者 (Subscriber):这就是“收信人”。它需要告诉邮局自己对哪个“邮箱”(主题)感兴趣。例如,你的手机App可以订阅
home/livingroom/temperature主题,这样就能收到温度传感器发来的所有数据。
MQTT 的核心优势在于它非常轻量和省电,特别适合网络不稳定或带宽有限的物联网设备。
🛠️ 如何开始使用 MQTT?
结合你之前对 MQTTX 的兴趣,最快的上手方式就是用它来体验 MQTT 的发布和订阅。
第一步:准备一个 MQTT 代理 (Broker)
MQTT 需要一个中心服务器(即 Broker)来运作。对于学习和测试,最简单的方法是使用免费的公共 Broker。
- 公共 Broker 地址:
broker.emqx.io - 端口:
1883(TCP协议)
第二步:使用 MQTTX 进行连接和测试
- 打开 MQTTX,点击左上角的 “+” 新建一个连接。
- 配置连接信息:
- Name: 随意填写,例如
TestClient1。 - Client ID: 保持默认生成的随机值即可,它在 Broker 中必须是唯一的。
- Host: 输入
broker.emqx.io。 - Port: 输入
1883。
- Name: 随意填写,例如
- 点击 “Connect” 建立连接。
第三步:体验发布与订阅
现在你已经连接到了公共的“邮局”,可以开始收发“信件”了。
-
模拟收信 (订阅):
- 在连接窗口下方,点击 “New Subscription”。
- 在 Topic 栏输入一个主题名,例如
test/my-topic。 - 点击 Subscribe。现在,任何发往
test/my-topic的消息都会在这里显示。
-
模拟寄信 (发布):
- 在底部的消息输入框,确保 Topic 也是
test/my-topic。 - 在消息内容区输入
{"msg": "Hello MQTT!"}。 - 点击发送。你会发现,你刚刚订阅的窗口里立刻收到了这条消息。
- 在底部的消息输入框,确保 Topic 也是
💡 核心概念速览
| 概念 | 说明 |
|---|---|
| 发布/订阅模式 | 消息发送方(发布者)和接收方(订阅者)互不关心对方,通过主题进行解耦。 |
| 主题 (Topic) | 消息的分类标签,类似文件路径,用斜杠 / 分隔,如 home/livingroom/light。 |
| 服务质量 (QoS) | 定义消息投递的保证级别,从“最多一次”到“恰好一次”。 |
| 遗嘱消息 (Last Will) | 客户端意外断开时,由 Broker 代为发送的一条消息,用于通知其他客户端。 |
通过这种方式,你可以轻松模拟多个设备(打开多个 MQTTX 窗口)之间的通信,是学习和调试 MQTT 协议的绝佳起点。
本文来自博客园,作者:张朋举,转载请注明原文链接:https://www.cnblogs.com/Running_Zhang/p/19863768
浙公网安备 33010602011771号