È necessario creare un numero ax di argomenti MQTT per x numero di dispositivi?


9

Attualmente nel mio progetto in cui il controller (client) invia i dati del sensore al server e riceve feedback dal server con alcuni dati aggiuntivi, utilizza il protocollo MQTT per la comunicazione. Ha 2 argomenti separati per client e server.

Per esempio:

Argomento1 - Client (ISCRIVITI), Server ( PUBLISHES )
Argomento2 - Client (PUBLISHES), Server (ISCRIVITI)

Ma se questo progetto è un caso d'uso di un'applicazione più grande, diciamo che alcuni dispositivi 5000 devono essere installati da qualche parte.

Quindi, sarà necessario creare 5000 argomenti diversi per client e server? O con argomenti minori può essere fatto e come?


1
Perché pensi che sia un problema avere molti argomenti?
hardillb,

1
Probabilmente perché il software dovrebbe gestirli tutti.
Mawg dice di ripristinare Monica il

1
@hardillb Non è un problema ... era solo curioso ... ma un argomento MQTT può avere un argomento secondario?
Ron123456,

2
Certo, gli argomenti sono gerarchici, quindi qualsiasi schema può essere ideato. Sparkplug s3.amazonaws.com/cirrus-link-com/… ha un paio di argomenti per nodo perimetrale e dispositivo dietro il nodo perimetrale .
Gambit Support,

dai un'occhiata a questo shiftr.io/shiftr-io/demo
jsotola

Risposte:


5

Da client a server puoi inserire id client in payload, ad esempio se è JSON, una delle chiavi può avere un valore ID client.

La risposta dal server al client deve contenere ID client per consentire al broker di non trasmettere messaggi, ma di inviarlo direttamente a un client connesso.

Allo stesso tempo puoi abbonare il tuo server a qualcosa del tipo: "richieste / +" e ogni client pubblicherà su "request / {client-id-1}", "request / {client-id-2}" e server riceverà entrambi con un solo abbonamento.

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.