Over on Stack Overflow pojawia się pytanie o implementację interakcji żądanie / odpowiedź przez MQTT. Jak zauważa jedna odpowiedź, możesz to zrobić, publikując żądanie na jeden temat i nasłuchując odpowiedzi na innym tokenie, który został zawarty w żądaniu. To trochę niezręczne, ale działa.
Zastanawiam się, skoro MQTT jest szeroko stosowane w całym IoT, czy były jakieś próby standaryzacji interakcji typu RPC ze względu na interoperacyjność?
Odpowiedzi:
Nie znam żadnych takich standardów.
Jak wskazano w odpowiedziach na inne pytanie, pub / sub nie nadaje się do RPC, ale można go zgiąć, aby dopasować.
Jedną z mocnych stron MQTT jest to, że ładowność może być dowolna, co pozwala programistom na dokonanie najlepszego wyboru dla ich projektu.
źródło
Nie jestem pewien, jakie są twoje wymagania dotyczące znormalizowanej metody komunikacji RPC przez MQTT, ale wciąż szukałem i znalazłem kilka punktów do przekazania.
Przede wszystkim o standardowej metodzie. Na jednym projekcie Github RPC opis to gwoździe:
Chodzi o to, aby użyć modelu stosu (model OSI jest standardem) i po prostu użyć MQTT jako jednej z warstw stosu.
Ten projekt na json-rpc przez mqtt używa standardowego lub co najmniej dobrze znanego protokołu przez MQTT.
Jeśli chodzi o niezręczność, nie musisz budować od podstaw MQTT i RPC, ale zamiast tego użyj jednej z połączonych bibliotek lub innej znalezionej na Github.
OK, dla każdego języka Github nie ma gotowych podstaw, ale w takim przypadku zgodność staje się kryterium planowania i może niestety wpłynąć na cały inny projekt.
źródło
Azure IoT Hub ma pojęcie metod bezpośrednich:
Jest to realizowane za pośrednictwem MQTT (AMQP nie jest obsługiwane), gdzie
Zapakowali to do swojego SDK, więc programiści nie muszą się martwić o monitorowanie tego tematu. Możesz zastosować podobne podejście.
Zgodnie z innymi odpowiedziami pub-sub nie nadaje się do RPC i, o ile mi wiadomo, nie ma żadnych standardów.
Więcej dokumentacji jest tutaj .
źródło