W moim rozumieniu w MQTT temat jest tworzony, gdy klient opublikuje coś z odpowiednią nazwą tematu.
Nie ma potrzeby konfigurowania tematu, wystarczy opublikować na nim temat.
Od tutaj .
Czy klient może subskrybować własny temat po jego opublikowaniu, utworzeniu? Nie mogłem znaleźć żadnych ograniczeń w specyfikacjach . Nie jest wymienione jako możliwe nieprawidłowe zachowanie ani:
5.4.8 Wykrywanie nietypowych zachowań
Implementacje serwera mogą monitorować zachowanie klienta w celu wykrycia potencjalnych incydentów bezpieczeństwa. Na przykład:
- Powtarzane próby połączenia
- Powtarzane próby uwierzytelnienia
- Nieprawidłowe zakończenie połączeń
- Skanowanie tematów (próby wysłania lub zasubskrybowania wielu tematów)
- Wysyłanie niedostarczonych wiadomości (brak subskrybentów tematów)
- Klienci, którzy łączą się, ale nie wysyłają danych
Na tej podstawie uważam, że jest to z pewnością możliwe. Jestem więc zainteresowany, jakie są przypadki użycia tej funkcji?
Dlaczego standard dopuszcza taki mechanizm, czy śledzenie właściciela tematów byłoby skomplikowane? Zamiast tego pozwala po prostu klientom zasubskrybować własny temat.
Jednym z przykładów użycia, o którym mogę myśleć, jest to, że w ten sposób klient może zweryfikować opublikowane dane.
Tak.
Klienci MQTT są podłączeni do brokera, którym może być chmura lub inne urządzenie.
Nie ma czegoś takiego jak tworzenie tematu. Są one używane jako nagłówek wiadomości. Więc jeśli twój klient zasubskrybował temat i jeśli opublikował coś na ten temat, wiadomość zostanie ponownie odebrana przez brokera do klienta.
Przykładami dobrych brokerów są Mosquitto do uruchamiania na urządzeniach i CloudMqtt dla brokera opartego na chmurze
źródło