欢迎光临
我们一直在努力

Kafka 系列 —(40)单设备端到端调试脚本(MQTT CLI / curl)

目录

1.MQTT CLI 工具说明

2.配置变量

3.模拟设备上报事件(MQTT → 平台)

3.1 上报开锁事件(lock.open)

3.2 上报电量事件(battery.low)

4.设备订阅命令(接收平台下发)

5.平台(或网关)下发命令(curl → MQTT → 设备)

5.1 下发开锁命令

5.2 设置一次性密码

6.Kafka 中确认消息流程(可选)

6.1 消费事件 Topic(MQTT → Kafka)

6.2 消费命令 Topic(API → Kafka → MQTT)

7.设备生命周期模拟脚本(一次跑完)

8.End-to-End 测试步骤总结


「单设备端到端调试脚本(MQTT CLI / curl)」 ——适合 智能锁 / IoT 设备 调试,涵盖 设备发消息 → MQTT → 网关 → Kafka → API → 下发命令 的完整链路。


1.MQTT CLI 工具说明

建议使用其中之一:

工具 命令 描述
mosquitto_pub/sub mosquitto_pub 最通用、轻量
MQTTX CLI mqttx pub 功能更现代
EMQX MQTT CLI emqx_mqttx_cli 兼容 MQTT5

以下示例默认采用 mosquitto,你可以替换成 MQTTX。


2.配置变量

# ———- MQTT 服务器 ———-
MQTT_HOST=\”mqtt.example.com\”
MQTT_PORT=1883
MQTT_USER=\”testDevice\”
MQTT_PASS=\”123456\”

# ———- 设备信息 ———-
DEVICE_ID=\”lock001\”
TOPIC_EVENT=\”iot/lock/${DEVICE_ID}/event\”
TOPIC_STATUS=\”iot/lock/${DEVICE_ID}/status\”
TOPIC_CMD=\”iot/lock/${DEVICE_ID}/cmd\”


3.模拟设备上报事件(MQTT → 平台)

3.1 上报开锁事件(lock.open)

mosquitto_pub \\
-h $MQTT_HOST -p $MQTT_PORT \\
-u $MQTT_USER -P $MQTT_PASS \\
-t $TOPIC_EVENT \\
-m \'{
\”eventType\”: \”lock.open\”,
\”timestamp\”: \”\’$(date -u +\”%Y-%m-%dT%H:%M:%SZ\”)\’\”,
\”method\”: \”password\”,
\”userId\”: \”u001\”
}\’

3.2 上报电量事件(battery.low)

mosquitto_pub \\
-h $MQTT_HOST -p $MQTT_PORT \\
-u $MQTT_USER -P $MQTT_PASS \\
-t $TOPIC_EVENT \\
-m \'{
\”eventType\”: \”battery.low\”,
\”timestamp\”: \”\’$(date -u +\”%Y-%m-%dT%H:%M:%SZ\”)\’\”,
\”level\”: 18
}\’


4.设备订阅命令(接收平台下发)

设备端:

mosquitto_sub \\
-h $MQTT_HOST -p $MQTT_PORT \\
-u $MQTT_USER -P $MQTT_PASS \\
-t $TOPIC_CMD

保持等待命令中…


5.平台(或网关)下发命令(curl → MQTT → 设备)

假设你有一个 RESTful API → Kafka → MQTT 下发链路,通常:

curl → Service → Kafka(topic: cmd) → MQTT Gateway → MQTT CMD topic → Device


5.1 下发开锁命令

curl -X POST https://api.example.com/iot/cmd \\
-H \”Content-Type: application/json\” \\
-d \”{
\\\”deviceId\\\”: \\\”${DEVICE_ID}\\\”,
\\\”command\\\”: \\\”unlock\\\”,
\\\”requestId\\\”: \\\”req-$(date +%s)\\\”
}\”

设备会在 $TOPIC_CMD 中收到:

{
\”command\”: \”unlock\”,
\”requestId\”: \”req-1735543100\”
}


5.2 设置一次性密码

curl -X POST https://api.example.com/iot/cmd \\
-H \”Content-Type: application/json\” \\
-d \”{
\\\”deviceId\\\”: \\\”${DEVIC

赞(0)
未经允许不得转载:171主机测评 » Kafka 系列 —(40)单设备端到端调试脚本(MQTT CLI / curl)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址