Einrichten mehrerer Sitzungen für einen einzelnen Client
In diesem Leitfaden erfahren Sie, wie Sie mehrere Sitzungen für einen einzelnen Client für einen Event Grid-Namespace einrichten.
Voraussetzungen
- Sie haben einen Event Grid-Namespace erstellt. In diesem Schnellstart: Veröffentlichen und Abonnieren eines MQTT-Themas erfahren Sie, wie Sie den Namespace und Unterressourcen erstellen und ein Thema veröffentlichen/abonnieren.
Unterstützung für mehrere Sitzungen
Um mehrere Sitzungen pro Client zu erstellen, geben Sie den Clientauthentifizierungsnamen in der Username-Eigenschaft des CONNECT-Pakets an. Anschließend können Sie die Sitzungs-ID im Clientbezeichner (ClientID-Eigenschaft) des CONNECT-Pakets angeben.
- Wenn die Username-Eigenschaft im CONNECT-Paket nicht angegeben wird, können Sie nicht mehrere Sitzungen für den Client erstellen.
- Das ClientID-Feld darf nicht leer sein.
- Die ClientID muss für alle Clients in einem Namespace eindeutig sein.
Wenn ein Client versucht, die aktive Sitzung eines anderen Clients zu übernehmen, indem er seinen Sitzungsnamen angibt, wird seine Verbindungsanforderung mit einem Fehler vom Typ „Nicht autorisiert“ abgelehnt. Wenn Client B beispielsweise versucht, eine Verbindung mit Sitzung 123 herzustellen, die zu diesem Zeitpunkt Client A zugewiesen ist, wird die Verbindungsanforderung von Client B abgelehnt.
Wenn ein Client getrennt wird, ohne seine Sitzung zu beenden, können andere Clients den Sitzungsnamen erst verwenden, nachdem die Sitzung abgelaufen ist. Wenn Client A beispielsweise eine Sitzung mit dem Sitzungsnamen 123 erstellt und dann Client A getrennt wird, kann Client B erst dann eine Verbindung mit Sitzung 123 herstellen, nachdem die ursprüngliche Sitzung abgelaufen ist.
CONNECT-Konfiguration: Binden Sie im MQTT CONNECT-Paket den Namen der Clientauthentifizierung in das Username-Feld ein, der die Identität des Clients darstellt. Hier sehen Sie ein Beispiel für Clientmetadaten mit dem Clientauthentifizierungsnamen „ipv4=127.0.0.1“.
Beim Verbinden des Clients mit dem Namespace können Sie nun das Clientbezeichnerfeld im MQTT CONNECT-Paket als Sitzungsbezeichner verwenden.
Beispielsweise können Sie basierend auf der Clientkonfiguration zwei CONNECT-Pakete mit Feldwerten vom gleichen Client senden:
Sie können ein Beispiel für die Verbindungseinrichtung mithilfe der MQTTX-Anwendung anzeigen.
Erstes Verbindungspaket:
- Benutzername: „ipv4=127.0.0.1“
- clientId: „sessionId1“
Zweites Verbindungspaket:
- Benutzername: „ipv4=127.0.0.1“
- clientId: „sessionId2“
Sie können die gleichen Clientzertifikatanmeldeinformationen verwenden, um beide Sitzungen zu authentifizieren.