Mosquitto: Zrozumienie tematów MQTT
Ta dokumentacja jest częścią przewodnika Pierwsze kroki. Pełny przewodnik znajdziesz tutaj: Jak zacząć z Mosquitto.
👋 Witamy w dokumentacji Stackhero!
Stackhero oferuje gotowe do użycia rozwiązanie Mosquitto MQTT cloud, które zapewnia wiele korzyści, w tym:
- Nieograniczoną wymianę i transfer wiadomości.
- Nieograniczoną autoryzację urządzeń za pomocą zewnętrznego API.
- Zaawansowane ACL na tematy, użytkowników i działania.
- Dostosowywalną nazwę domeny zabezpieczoną za pomocą HTTPS (na przykład, https://mqtt.twoja-firma.com).
- Łatwe aktualizacje za pomocą jednego kliknięcia.
- Optymalną wydajność i solidne bezpieczeństwo dzięki prywatnej i dedykowanej VM.
Oszczędzaj czas i upraszczaj swoje życie: wystarczy 5 minut, aby wypróbować rozwiązanie Mosquitto MQTT cloud hosting Stackhero!
MQTT organizuje komunikację w "tematy", które działają jako kanały do publikowania i subskrybowania danych. Urządzenia publikują wiadomości na określonych tematach lub subskrybują je, aby otrzymywać odpowiednie aktualizacje.
Struktura tematów MQTT
Tematy w MQTT są wrażliwe na wielkość liter, muszą zawierać znaki UTF-8 i wymagać co najmniej jednego znaku. Hierarchia w tematach jest definiowana za pomocą znaku ukośnika (/).
Oto przykład konfiguracji dla urządzeń IoT zbierających dane o temperaturze i wilgotności, identyfikowanych przez ich adresy MAC:
-
Dla urządzenia z adresem MAC
00:00:00:00:00:00:- Temperatura:
devices/00:00:00:00:00:00/temperature - Wilgotność:
devices/00:00:00:00:00:00/humidity
- Temperatura:
-
Dla urządzenia z adresem MAC
11:11:11:11:11:11:- Temperatura:
devices/11:11:11:11:11:11/temperature - Wilgotność:
devices/11:11:11:11:11:11/humidity
- Temperatura:
Aplikacje mogą subskrybować konkretny temat, taki jak devices/00:00:00:00:00:00/temperature, aby otrzymywać dane z odpowiedniego urządzenia IoT.
Użycie symboli wieloznacznych w tematach MQTT
MQTT obsługuje symbole wieloznaczne dla efektywnego zarządzania tematami:
-
Symbol
+pasuje do jednego poziomu w hierarchii tematów. Na przykład, subskrybującdevices/+/temperature, obejmuje tematy takie jakdevices/1/temperature, ale niedevices/1/2/temperature. -
Symbol
#pasuje do wielu poziomów. Na przykład,devices/#obejmuje tematy takie jakdevices/1/temperature,devices/2/humidityidevices/1/2/somethingElse.