Meerdere sessies voor één client tot stand brengen
In deze handleiding leert u hoe u meerdere sessies voor één client tot stand brengt in een Event Grid-naamruimte.
Vereisten
- U hebt een Event Grid-naamruimte gemaakt. Raadpleeg deze quickstart: publiceren en abonneren op een MQTT-onderwerp om de naamruimte, subresources te maken en om een onderwerp te publiceren/abonneren.
Ondersteuning voor meerdere sessies
Als u meerdere sessies per client wilt maken, geeft u de naam van de clientverificatie op in de eigenschap Gebruikersnaam van het CONNECT-pakket. Vervolgens kunt u de sessie-id opgeven in de eigenschap Client Identifier (ClientID) van het CONNECT-pakket.
- Als de eigenschap Gebruikersnaam niet is opgegeven in het CONNECT-pakket, kunt u geen meerdere sessies voor de client maken.
- Het veld ClientID mag niet leeg zijn.
- ClientID moet uniek zijn voor alle clients in een naamruimte
Als een client probeert de actieve sessie van een andere client over te nemen door de sessienaam te presenteren, wordt de verbindingsaanvraag geweigerd met een niet-geautoriseerde fout. Als client B bijvoorbeeld verbinding probeert te maken met sessie 123 die op dat moment aan client A is toegewezen, wordt de verbindingsaanvraag van client B geweigerd.
Als de verbinding van een client wordt verbroken zonder de sessie te beëindigen, kunnen andere clients de sessienaam pas gebruiken als de sessie verloopt. Als client A bijvoorbeeld een sessie met sessienaam 123 maakt, wordt de verbinding met client A verbroken, kan client B geen verbinding maken met sessie 123 totdat de oorspronkelijke sessie verloopt.
CONNECT-configuratie In het MQTT CONNECT-pakket neemt u de naam van de clientverificatie op in het veld Gebruikersnaam, waarmee de identiteit van de client wordt ondertekend. Hier volgt een voorbeeld van clientmetagegevens met clientverificatienaam ipv4=127.0.0.1.
Nu kunt u tijdens het verbinden van de client met de naamruimte het veld client-id in het MQTT CONNECT-pakket gebruiken als sessie-id.
Op basis van de clientconfiguratie kunt u bijvoorbeeld twee CONNECT-pakketten verzenden met veldwaarden van dezelfde client:
U kunt een voorbeeld van een verbinding instellen met behulp van de MQTTX-toepassing.
Eerste verbindingspakket:
- gebruikersnaam: "ipv4=127.0.0.1"
- clientId: "sessionId1"
Tweede verbindingspakket:
- gebruikersnaam: "ipv4=127.0.0.1"
- clientId: "sessionId2"
U kunt dezelfde referenties voor het clientcertificaat gebruiken om beide sessies te verifiëren.