Come stabilire più sessioni per un singolo client
In questa guida si apprenderà come stabilire più sessioni per un singolo client in uno spazio dei nomi di Griglia di eventi.
Prerequisiti
- È stato creato uno spazio dei nomi di Griglia di eventi. Fare riferimento a questa guida introduttiva - Pubblicare e sottoscrivere un argomento MQTT per creare lo spazio dei nomi, le sottorisorse e pubblicare/sottoscrivere un argomento.
Supporto per più sessioni
Per creare più sessioni per client, specificare il nome di autenticazione client nella proprietà Username del pacchetto CONNECT. È quindi possibile specificare l'ID sessione nella proprietà Client Identifier (ClientID) del pacchetto CONNECT.
- Se la proprietà Username non viene specificata nel pacchetto CONNECT, non è possibile creare più sessioni per il client.
- Il campo ClientID non può essere vuoto.
- ClientID deve essere univoco in tutti i client in uno spazio dei nomi
Se un client tenta di assumere la sessione attiva di un altro client presentando il nome della sessione, la richiesta di connessione viene rifiutata con un errore non autorizzato. Ad esempio, se il client B tenta di connettersi alla sessione 123 assegnata in quel momento al client A, la richiesta di connessione del client B viene rifiutata.
Se un client viene disconnesso senza terminare la sessione, altri client non possono usare il nome della sessione fino alla scadenza della sessione. Ad esempio, se il client A crea una sessione con nome di sessione 123, il client A viene disconnesso, il client B non può connettersi alla sessione 123 fino alla scadenza della sessione originale.
Configurazione CONNECT Nel pacchetto MQTT CONNECT includere il nome di autenticazione client nel campo Nome utente, che indica l'identità del client. Ecco un esempio di metadati client con nome di autenticazione client "ipv4=127.0.0.1".
Ora, durante la connessione del client allo spazio dei nomi, è possibile usare il campo identificatore client nel pacchetto MQTT CONNECT come identificatore di sessione.
Ad esempio, in base alla configurazione client, è possibile inviare due pacchetti CONNECT con valori di campo dallo stesso client:
È possibile visualizzare una configurazione di connessione di esempio usando l'applicazione MQTTX.
Primo pacchetto di connessione:
- username: "ipv4=127.0.0.1"
- clientId: "sessionId1"
Secondo pacchetto di connessione:
- username: "ipv4=127.0.0.1"
- clientId: "sessionId2"
È possibile usare le stesse credenziali del certificato client per autenticare entrambe le sessioni.