Die IoTHub-Geräte-ID muss mit der MQTT-Client-ID übereinstimmen
Sie können sich nur mit einem Client für ein bestimmtes IoTHub-Gerät verbinden
Der SAS-Token läuft nach einer vordefinierten Zeit ab und muss aktualisiert werden. Sie müssen den Token sowie das MQTT-Passwort regelmäßig für jeden Stream im Control Center aktualisieren.
Wir setzen die Stream-ID als MQTT-Client-ID. Sie können die MQTT-Client-ID bei Bedarf überschreiben.
für jeden Stream eine entsprechende IotHub-Geräte-ID erstellen (empfohlen) oder
zufällige IotHub-Geräte-IDs erstellen und jedem Stream eine zuweisen, indem Sie die MQTT-Client-ID festlegen
(1) Erstellen Sie ein IotHub-Gerät, kopieren Sie die Stream-ID aus dem Control Center
az iot hub device-identity create --hub-name <hubname> --device-id "<stream-id> --edge-enabled
(2) Erzeugen Sie einen SAS-Token für das IoTHub-Gerät
az iot hub generate-sas-token --hub-name <hubname> --duration 51840000 --device-id <stream-id>
(3) Überprüfen Sie eingehende Events
az iot hub monitor-events --hub-name <hubname> -d "stream-id"
(4) Testen Sie mit einem MQTT-Client (z.B. mosquitto) und veröffentlichten Sie eine Message. Wir haben diese root.pem-Datei verwendet. Stellen Sie sicher, dass Sie zu diesem Zeitpunkt Messages erhalten. Fahren Sie nicht fort, wenn dieser Schritt nicht funktioniert.
mosquitto_pub -p 8883 -i <stream-id> -u '<hubname>.azure-devices.net/<stream-id>/?api-version=2021-04-12' -P '<SAS token>' -t 'devices/<stream-id>/messages/events' --cafile root.pem -d -V mqttv311 -m '{"swarm":"test"}'
(5) Geben Sie URL, Benutzername, Passwort und Topic als Custom-Broker im Control Center an.