Comment établir plusieurs sessions pour un seul client
Dans ce guide, vous allez apprendre à établir plusieurs sessions pour un client unique à un espace de noms Event Grid.
Prérequis
- Vous avez créé un espace de noms Event Grid. Reportez-vous à ce guide de démarrage rapide - Publier et s’abonner sur une rubrique MQTT pour créer l’espace de noms, les sous-ressources et pour publier/s’abonner sur une rubrique.
Prise en charge multisession
Pour créer plusieurs sessions par client, indiquez le nom d’authentification du client dans la propriété Username du paquet CONNECT. Vous pouvez ensuite fournir l’ID de session dans la propriété Identificateur client (ClientID) du paquet CONNECT.
- Si la propriété Username n’est pas fournie dans le paquet CONNECT, vous ne pouvez pas créer plusieurs sessions pour le client.
- Le champ ClientID ne peut pas être vide.
- Le ClientID doit être unique entre tous les clients d’un espace de noms
Si un client tente de reprendre la session active d’un autre client en présentant son nom de session, sa demande de connexion est rejetée avec une erreur non autorisée. Par exemple, si le client B tente de se connecter à la session 123 affectée à ce moment-là au client A, la demande de connexion du client B est rejetée.
Si un client est déconnecté sans mettre fin à sa session, les autres clients ne peuvent pas utiliser le nom de la session tant que la session n’a pas expiré. Par exemple, si le client A crée une session avec le nom de session 123 alors que le client A est déconnecté, le client B ne peut pas se connecter à la session 123 tant que la session d’origine n’a pas expiré.
Configuration CONNECT Dans le paquet MQTT CONNECT, incluez le nom d’authentification client dans le champ Nom d’utilisateur, ce qui signifie l’identité du client. Voici un exemple de métadonnées clientes avec le nom d’authentification du client « ipv4=127.0.0.1 ».
Maintenant, lors de la connexion du client à l’espace de noms, vous pouvez utiliser le champ identificateur client dans le paquet MQTT CONNECT comme identificateur de session.
Par exemple, en fonction de la configuration du client, vous pouvez envoyer deux paquets CONNECT avec des valeurs de champ à partir du même client :
Vous pouvez voir un exemple de configuration de connexion à l’aide de l’application MQTTX.
Premier paquet de connexion :
- nom d’utilisateur : « ipv4=127.0.0.1 »
- clientID : « sessionId1 »
Deuxième paquet de connexion :
- nom d’utilisateur : « ipv4=127.0.0.1 »
- clientID : « sessionId2 »
Vous pouvez utiliser les mêmes informations d’identification de certificat client pour authentifier les deux sessions.