Så här etablerar du flera sessioner för en enskild klient
I den här guiden får du lära dig hur du upprättar flera sessioner för en enskild klient till ett Event Grid-namnområde.
Förutsättningar
- Du har skapat ett Event Grid-namnområde. Se den här snabbstarten – Publicera och prenumerera på ett MQTT-ämne för att skapa namnområdet, underresurser och publicera/prenumerera på ett ämne.
Stöd för flera sessioner
Om du vill skapa flera sessioner per klient anger du klientautentiseringsnamnet i egenskapen Användarnamn för CONNECT-paketet. Sedan kan du ange sessions-ID:t i klientidentifierarens (ClientID) egenskap för CONNECT-paketet.
- Om egenskapen Användarnamn inte anges i CONNECT-paketet kan du inte skapa flera sessioner för klienten.
- ClientID-fältet får inte vara tomt.
- ClientID måste vara unikt för alla klienter i ett namnområde
Om en klient försöker ta över en annan klients aktiva session genom att presentera sitt sessionsnamn avvisas anslutningsbegäran med ett obehörigt fel. Om klient B till exempel försöker ansluta till session 123 som då tilldelas klient A avvisas klient B:s anslutningsbegäran.
Om en klient kopplas från utan att sessionen avslutas kan andra klienter inte använda sessionsnamnet förrän sessionen upphör att gälla. Om till exempel klient A skapar en session med sessionsnamn 123 och klient A kopplas från, kan klient B inte ansluta till session 123 förrän den ursprungliga sessionen upphör att gälla.
CONNECT-konfiguration I MQTT CONNECT-paketet inkluderar du namnet på klientautentiseringen i fältet Användarnamn, vilket betyder klientens identitet. Här är ett exempel på klientmetadata med klientautentiseringsnamnet "ipv4=127.0.0.1".
När du ansluter klienten till namnområdet kan du nu använda fältet klientidentifierare i MQTT CONNECT-paketet som sessionsidentifierare.
Baserat på klientkonfigurationen kan du till exempel skicka två CONNECT-paket med fältvärden från samma klient:
Du kan se en exempelanslutningskonfiguration med MQTTX-programmet.
Första anslutningspaketet:
- username: "ipv4=127.0.0.1"
- clientId: "sessionId1"
Second Connect-paket:
- username: "ipv4=127.0.0.1"
- clientId: "sessionId2"
Du kan använda samma autentiseringsuppgifter för klientcertifikatet för att autentisera båda sessionerna.