Obecnie w moim projekcie, w którym kontroler (klient) wysyła dane czujnika do serwera i otrzymuje informacje zwrotne od serwera z dodatkowymi danymi, do komunikacji używa protokołu MQTT. Ma 2 oddzielne tematy dla klienta i serwera.
Na przykład:
Temat 1 - Klient (SUBSKRYBUJE), Serwer ( OPUBLIKUJE )
Temat 2 - Klient (OPUBLIKUJE), Serwer (SUBSKRYBUJE)
Ale jeśli ten projekt jest przykładem zastosowania większej aplikacji, powiedzmy, że gdzieś trzeba zainstalować jakieś 5000 urządzeń.
Czy zatem konieczne będzie utworzenie 5000 różnych tematów dla klienta i serwera? Lub przy mniejszych tematach można to zrobić i jak?
Odpowiedzi:
Od klienta do serwera można spakować identyfikator klienta do ładunku, np. Jeśli jest to JSON, jeden z kluczy może mieć wartość identyfikatora klienta.
Odpowiedź od serwera do klienta powinna zawierać identyfikator klienta, aby pośrednik nie wysyłał wiadomości, ale wysyłał ją bezpośrednio do jednego podłączonego klienta.
W tym samym czasie możesz subskrybować swój serwer na coś w rodzaju: „request / +”, a każdy klient opublikuje na „request / {client-id-1}”, „request / {client-id-2}” i serwer otrzyma oba z tylko jedną subskrypcją.
źródło