MQTT 网络通信:Python 与 Mosquitto 代理的应用
1. MQTT 系统基础
在 MQTT 系统中,每个客户端彼此互不了解,客户端仅与 MQTT 代理进行连接和交互,由代理将消息路由到合适的客户端。这种路由通过消息主题实现,后续会详细探讨。
以水泵为例,它需要接收开启或关闭的消息,同时也需要发送自身的开关状态。这是因为 MQTT 消息是“发送即忘”的,客户端发布消息后不会得到应用层的响应。所以,若水泵不发布自身状态,控制器就无法知晓水泵是否真正开启。
在实际应用中,水泵每次开启或关闭时都会发布自身的开关状态,这样控制器的仪表盘就能及时更新水泵状态。此外,水泵还会像水位传感器一样,定期发布状态,以便控制器监测水泵的连接和可用性,检测其是否离线。
2. 发布和订阅 MQTT 消息
2.1 订阅消息
在终端中运行以下命令,使用 mosquitto_sub 工具订阅消息:
# Terminal #1 (Subscriber)
$ mosquitto_sub -v -h localhost -t 'pyiot'
参数说明:
- -v (--verbose) :详细模式,会在终端打印消息主题和消息负载。
- -h (--host) :指定要连接的代理主机,这里是本地主机,默认端口为 1883。
- -t (--topic) :指定要订阅和监听的主
超级会员免费看
订阅专栏 解锁全文
54

被折叠的 条评论
为什么被折叠?



