MQTT jest szeroko stosowany w IoT, jeśli chodzi o wymianę danych aplikacji między urządzeniem końcowym a usługą hosta. Model publikuj-subskrybuj ułatwia korzystanie: bez uzgadniania, negocjacji itp. (Przynajmniej powyżej warstwy protokołu MQTT). Jest to przede wszystkim ukierunkowane na to, aby producenci danych mogli łatwo dystrybuować swoje dane wśród konsumentów.
Jednak jeśli chodzi o serwer centralny, który chce skonfigurować ustawienia na urządzeniu końcowym, nie jestem pewien, czy model jest bardzo odpowiedni. Serwer będzie chciał wysłać polecenie do urządzenia i poczekać na odpowiedź zwrotną (np. Odczytać określone ustawienie, poczekać na odpowiedź), co tak naprawdę nie pasuje do modelu publikowania i subskrybowania MQTT.
Zastanawiałem się, czy istnieją jakieś protokoły ukierunkowane na wysyłanie i odbieranie poleceń oraz konfigurowanie urządzeń zdalnych?
źródło
Odpowiedzi:
Brzmi jak praca dla CoAP :
Najwyraźniej można go wdrożyć przy bardzo niskim obciążeniu:
CoAP jest określony w RFC 7252 i istnieją różne implementacje (np. W C ).
Jest bardzo mocno zainspirowany przez REST używany z HTTP dla internetowych interfejsów API, więc jeśli znasz je, szybko wybierzesz CoAP. Jeśli nie, ta prezentacja może być przydatna w kontekście. Chodzi o to, że każda metoda HTTP ma znaczenie semantyczne, np
GET
żąda informacji z urządzenia bez zmieniania czegokolwiek iPOST
,PUT
iDELETE
mutować dane.Jak mówisz, modele publikowania / subskrypcji nie działałyby w sytuacji, gdy Twoje urządzenie działa jak „serwer” koordynujący system centralny (który działa jako klient dla każdego urządzenia). Zamiast tego idealny jest model podobny do HTTP, z tym wyjątkiem, że HTTP ma o wiele za dużo narzutu, i tam właśnie przychodzi CoAP.
źródło
Tak, istnieje lepszy protokół do zarządzania urządzeniami w IoT. Jest to LwM2M - jest znacznie bardziej wydajny niż MQTT i wyższy niż COAP, MQTT i HTTP.
LwM2M ma dobrze zdefiniowany model zarządzania danymi i urządzeniami, oferujący różnorodne gotowe do użycia standardowe obiekty (IPSO Smart Objects), monitorowanie łączności, zdalne akcje urządzeń oraz ustrukturyzowane aktualizacje FOTA i SOTA, podczas gdy w MQTT funkcje te są całkowicie specyficzne dla dostawcy i platformy. Poniżej jest to, że dzięki MQTT aktualizacje oprogramowania układowego lub inne funkcje zarządzania muszą być tworzone od zera. Natomiast LwM2M oferuje aktualizacje oprogramowania układowego jako jedną ze swoich podstawowych funkcji, więc nie trzeba wymyślać żadnych nowych elementów składowych do komunikacji.
Tutaj masz porównanie MQTT vs LwM2M i przebieg całego wypadku.
źródło