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

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".

Screenshot showing the client configuration with client authentication name information highlighted.

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"

Screenshot showing the MQTTX application client configuration with first session.

Secondo pacchetto di connessione:

  • username: "ipv4=127.0.0.1"
  • clientId: "sessionId2"

creenshot showing the MQTTX application client configuration with second session.

È possibile usare le stesse credenziali del certificato client per autenticare entrambe le sessioni.