Esiste un meccanismo RPC standardizzato per MQTT?


10

Over over Stack Overflow c'è una domanda sull'implementazione dell'interazione richiesta / risposta su MQTT. Come nota una risposta, puoi farlo pubblicando la richiesta su un argomento e ascoltando la risposta su un altro token incluso nella richiesta. È un po 'imbarazzante, ma funziona.

Dato che MQTT è ampiamente utilizzato in tutto l'IoT, mi chiedo, ci sono stati tentativi di standardizzare questa interazione di tipo RPC per motivi di interoperabilità?


Ho appena trovato questo che potrebbe essere la base per una risposta: esr.net/download/specification/ESR030-LWM2M-MQTT-1.0-A.pdf . Certamente non una specifica richiesta / risposta generica è strettamente accoppiata a LWM2M.
Chris Steinbach,

Risposte:


9

Non sono a conoscenza di tali standard.

Come sottolineato nelle risposte all'altra domanda, pub / sub non si presta a RPC ma può essere piegato per adattarsi.

Uno dei punti di forza di MQTT è che il payload può essere qualsiasi cosa, consentendo a uno sviluppatore di fare la scelta migliore per il proprio progetto.


4

Non sono sicuro di quale sia il tuo requisito per il metodo di comunicazione RPC standardizzato su MQTT, ma ho ancora fatto una piccola ricerca in giro e ho trovato diversi punti da consegnarti.

Prima di tutto, riguardo al metodo standard. Su un progetto Github rpc il tipo di descrizione lo inchioda:

Questo modulo fornisce un'interfaccia rpc per una connessione mqtt, in sostanza si tratta di una strategia di richiesta e risposta che utilizza una struttura di argomenti MQTT come trasporto.

Il punto è usare il modello di stack (il modello OSI è uno standard) e usare semplicemente MQTT come uno dei livelli dello stack.

Questo progetto su json-rpc su mqtt utilizza un protocollo standardizzato o almeno ben noto su MQTT.

Per quanto riguarda l'imbarazzo, non è necessario creare da zero MQTT e RPC su di esso, ma utilizzare invece una delle librerie collegate o altre trovate su Github.

OK, per ogni lingua non esiste una base pronta su Github, ma in tal caso la conformità diventa un criterio di pianificazione e, purtroppo, può influire sull'intero altro progetto.


Non ho requisiti reali. L'impulso per la domanda sta confrontando CoAP (che ha meccanismi di richiesta / risposta definiti da RFC e pub / sub) con MQTT che sono ragionevolmente sicuro che ora abbia solo pub / sub standardizzati. Certamente avere alcune librerie open source per RPC è meglio di niente.
Chris Steinbach,

4

L'hub IoT di Azure ha un concetto di metodi diretti:

L'hub IoT ti dà la possibilità di invocare metodi diretti su dispositivi dal cloud.

Questo è implementato su MQTT (AMQP non è supportato), dove

I dispositivi ricevono richieste di metodo dirette sull'argomento MQTT:

$iothub/methods/POST/{method name}/?$rid={request id}.

L'hanno inserito nel loro SDK, quindi gli sviluppatori non devono preoccuparsi di monitorare specificamente l'argomento. Potresti implementare un approccio simile.

Come per altre risposte, pub-sub non si presta a RPC e non ci sono standard, per quanto ne sappia.

Più documentazione è qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.