SERVIZIO

MQTT Engine

MQTT per la flotta di dispositivi Cams. L'MQTT Engine è un consumer di backend dietro EMQX che si iscrive ai topic condivisi di presenze e presenza, convoglia gli eventi nella stessa pipeline di presenze dei trasporti HTTP e TCP e pubblica envelope di comandi da server a dispositivo.

Panoramica

Un motore di trasporto MQTT che acquisisce eventi di presenza e invia comandi ai dispositivi tramite un broker EMQX — pensato per grandi flotte di dispositivi connessi.

L'MQTT Engine è il trasporto MQTT della famiglia di motori Cams, la controparte di HTTP e TCP persistente. Gira come consumer di backend dietro un broker EMQX: si iscrive ai topic condivisi di presenze e presenza sotto api/mqtt/v1/{sn}/, convoglia ogni evento nella pipeline condivisa e pubblica i comandi da server a dispositivo sul topic dei comandi come envelope JSON compatibili con le versioni future. EMQX gestisce le sessioni TLS dei dispositivi, l'autenticazione, la QoS e il last-will; più istanze del motore si bilanciano il carico tramite le sottoscrizioni condivise di EMQX per flotte di grandi dimensioni.

SERVIZIOMQTTEMQXTLSJSONC++
Schema dei topic MQTT (EMQX)
# device -> server (attendance)
api/mqtt/v1/{sn}/evt   { "user_id":"1001", "att_time":"...", "att_state":1 }
# device -> server (presence / LWT)
api/mqtt/v1/{sn}/st    { "online": true }
# server -> device (command)
api/mqtt/v1/{sn}/cmd   { "id":"c1", "op":"sync_user", "data":{} }

Funzionalità

Che cosa fa

Acquisizione via MQTT

Si iscrive ai topic di eventi condivisi e convoglia ogni evento di presenza nella stessa pipeline di archiviazione e push di HTTP e TCP.

Tracciamento della presenza

Consuma il topic di presenza e il last-will, così le disconnessioni rilevate dal broker segnano un dispositivo come offline.

Invio di comandi

Pubblica i comandi in coda da server a dispositivo sul topic dei comandi di ciascun dispositivo come envelope JSON con QoS 1.

Scalabilità orizzontale

Le sottoscrizioni condivise di EMQX bilanciano il carico delle presenze su più istanze del motore per grandi flotte di dispositivi.

Caratteristiche

Tutto incluso

  • Front-end di trasporto MQTT per le presenze, alla pari dei motori HTTP e TCP nativi
  • Schema dei topic api/mqtt/v1/{sn}/{evt|cmd|st} allineato all'app e alla ACL di EMQX
  • Consumer di backend dietro EMQX: le sottoscrizioni condivise bilanciano il carico su N istanze
  • Acquisisce nella pipeline condivisa eventi di presenza con payload identico al body della timbratura HTTP
  • Presenza e last-will tramite il topic di stato, così le disconnessioni segnano i dispositivi come offline
  • Invio di comandi da server a dispositivo come envelope JSON {id, op, data} compatibile con le versioni future, con QoS 1
  • TLS verso il broker con verifica della CA; il motore usa un account di backend, non il numero di serie di un dispositivo
  • Build multipiattaforma (Linux e Windows) su Eclipse Paho C++

Sviluppa con MQTT Engine

Ottieni una chiave, leggi la documentazione e rilascia. Il nostro team ti assiste con la tua prima integrazione.

FAQ

Domande frequenti

Che rapporto c'è tra MQTT Engine ed EMQX?

EMQX resta il broker che gestisce le sessioni TLS dei dispositivi, l'autenticazione, la QoS e il last-will. L'MQTT Engine è un consumer di backend che si iscrive ai topic condivisi per acquisire le presenze e pubblica i comandi verso i dispositivi.

Posso eseguire più istanze di MQTT Engine?

Sì. Le sottoscrizioni condivise di EMQX bilanciano il carico dei topic di presenze e presenza tra tutte le istanze in esecuzione, quindi si scala aggiungendo istanze.

Qual è il formato dei comandi da server a dispositivo?

Un envelope JSON {id, op, data} sul topic dei comandi con QoS 1, dove op è l'unico campo obbligatorio e le op sconosciute vengono ignorate dai dispositivi più vecchi per compatibilità con le versioni future.

Correlati

Esplora altre parti della piattaforma