Co się stanie, gdy w MQTT nie będzie subskrybenta tematu?

12

Sytuacja wygląda następująco:

Jest klient, wydawca, nie subskrybuje żadnego tematu. Ten klient ma jeden własny temat i publikuje na nim dane. Ale nie ma żadnych innych klientów subskrybujących ten temat.

Tak więc ten biedny i samotny klient może być uważany za nienormalny ( rozdział 5.4.8 ).

Implementacje serwera mogą monitorować zachowanie klienta w celu wykrycia potencjalnych incydentów bezpieczeństwa. Na przykład:

  • [...]

  • Wysyłanie niedostarczonych wiadomości (brak subskrybentów tematów)

Nie ma pojęcia, ilu klientów subskrybuje jego temat. Nie wie więc, że może to być klient nienormalny.

Więc co stanie się z takim klientem będzie zależeć od implementacji serwera? Jakie są praktyki, należy po prostu odłączyć, ale czy wtedy nie spróbuje się ponownie połączyć?

Bence Kaulics
źródło

Odpowiedzi:

9

Jak mówisz, zależy to od implementacji serwera, szczególnie QoS przesłanej wiadomości, jeśli jest ona „co najmniej raz”.

IMHO MQTT to system rozgłoszeniowy, a nie protokół typu end-to-end między dwoma urządzeniami, więc nie potrzebujemy abonenta za każdym razem, gdy tworzymy temat.

Mogę opublikować wszystko (temperatura, ...), a dwa miesiące później zaimplementować coś, co to przeczyta, a nawet usunąć i pomyśleć o czymś innym, podczas gdy mój czujnik nadal publikuje dane.

Goufalite
źródło