第4章 Mosquitto命令行工具快速上手

第4章 Mosquitto命令行工具快速上手

4.1 命令行工具概览

Mosquitto命令行工具
mosquitto_pub
mosquitto_sub
mosquitto
mosquitto_passwd
发布消息
订阅主题
启动Broker
管理密码文件

4.2 mosquitto_pub 详解

基本语法

mosquitto_pub
连接参数
消息参数
选项参数
主题和消息
-h 主机
-p 端口
-u 用户名
-P 密码
-t 主题
-m 消息
-f 文件
-l 从标准输入
-q QoS
-r 保留
-i ClientID

常用示例

bash 复制代码
# 最简单的发布
mosquitto_pub -t "test/hello" -m "Hello World"

# 指定QoS和保留消息
mosquitto_pub -t "sensor/temp" -m "25.5" -q 1 -r

# 从文件发布
mosquitto_pub -t "config/device" -f config.json

# 发布JSON数据
mosquitto_pub -t "sensor/data" -m '{"temp":25.5,"humidity":60.2}'

# 保留消息后清除
mosquitto_pub -t "status/device" -r -n

# 设置遗嘱消息
mosquitto_pub -t "data" -m "message" \
  --will-topic "status/offline" \
  --will-payload "gone" \
  --will-qos 1 \
  --will-retain

4.3 mosquitto_sub 详解

基本语法与示例

bash 复制代码
# 订阅单个主题
mosquitto_sub -t "sensor/temp"

# 订阅多个主题
mosquitto_sub -t "sensor/temp" -t "sensor/humidity"

# 使用通配符
mosquitto_sub -t "home/#"
mosquitto_sub -t "sensor/+/data"

# 显示主题名称(-v)
mosquitto_sub -v -t "sensor/#"

# 只接收一条消息(-C)
mosquitto_sub -C 1 -t "config/device"

# 持久会话
mosquitto_sub -id "myclient" -t "sensor/#" -q 1

# 保留连接
mosquitto_sub -t "sensor/#" -k 30

4.4 实战演练

场景1: 温度监控系统

监控终端 Mosquitto 传感器脚本 监控终端 Mosquitto 传感器脚本 PUBLISH sensor/livingroom/temp "25.5" PUBLISH sensor/bedroom/temp "24.2" SUBSCRIBE sensor/+/temp sensor/livingroom/temp 25.5 sensor/bedroom/temp 24.2

脚本实现:

bash 复制代码
#!/bin/bash
# temperature_publisher.sh

while true; do
    TEMP=$(echo "scale=1; $RANDOM / 100 % 10 + 20" | bc)
    mosquitto_pub -t "sensor/livingroom/temperature" -m "$TEMP" -q 1
    echo "发布温度: $TEMP°C"
    sleep 5
done
bash 复制代码
# 订阅监控
mosquitto_sub -v -t "sensor/+/temperature"

场景2: 遥控器控制

bash 复制代码
# 控制终端
echo "打开客厅灯"
mosquitto_pub -t "home/livingroom/light" -m "ON" -q 1

echo "设置空调温度"
mosquitto_pub -t "home/livingroom/ac" -m '{"action":"set","temp":24}' -q 1

# 设备端订阅
mosquitto_sub -t "home/livingroom/#"

4.5 调试技巧

详细调试模式

bash 复制代码
# 使用-v参数查看详细信息
mosquitto_pub -v -t "test" -m "hello"

# 使用-d参数调试
mosquitto_sub -d -t "test/#"

连接问题排查

未运行
运行中
端口错误
端口正确
阻止
通过
需认证
无需认证
连接失败
检查服务
启动mosquitto
检查端口
使用正确-p端口
检查防火墙
开放防火墙
检查认证
提供-u用户名-P密码
检查网络

4.6 本章小结

掌握了mosquitto_pub和mosquitto_sub的使用方法,可以进行基本的MQTT消息通信测试和开发调试。

相关推荐
微三云 - 廖会灵 (私域系统开发)2 小时前
存量社区破局:当物业困局遇上消费返物业费,重构社区商业新生态
大数据·人工智能·重构
云飞云共享云桌面4 小时前
医疗器械设备研发:多人同时操作 SolidWorks,怎样依靠单台服务器替代多工作站
运维·服务器·网络·数据库·制造
T型码农要学习4 小时前
开源项目5|FileBrowser:免费在线文件管理器!随时随地管控服务器文件
运维·服务器·人工智能·开源
Sylvia33.4 小时前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
智恒百亿4 小时前
8 卡 RTX 5090 服务器深度实测:256GB 显存能否支撑 70B 模型微调?选型参考
大数据·运维·服务器·人工智能
小弥儿6 小时前
开源 VoiceStudio,声音克隆|配音|有声书一站式本地完成
学习·开源·github
ai小陈6 小时前
PyTorch DataLoader数据加载性能排查:GPU利用率低的实操指南
人工智能·pytorch·python·深度学习·ai·gpu算力
鼹鼠SDN7 小时前
没有公网 IP,如何在外面访问家里的打印机、摄像头和整个局域网?
网络·网络协议·tcp/ip
测试者家园8 小时前
为什么意图驱动测试是自动化测试的下一站,而不是替代品
自动化测试·软件测试·人工智能·持续测试·ai赋能·智能化测试·软件测试变革
D202020209 小时前
TikTok Shop禁止AI语音直播落地后,跨境卖家如何通过达秘合规调整带货内容
人工智能