Freigeben über


Azure Web PubSub Service Client-Bibliothek für Python

Azure Web PubSub Service ist ein von Azure verwalteter Dienst, der Entwicklern hilft, Webanwendungen mit Echtzeitfunktionen und Publish-Subscribe-Muster zu erstellen. Jedes Szenario, das Echtzeit-Publish-Subscribe-Messaging zwischen Server und Clients oder zwischen Clients erfordert, kann den Azure Web PubSub-Dienst nutzen. Herkömmliche Echtzeitfeatures, die häufig das Abrufen vom Server oder das Übermitteln von HTTP-Anforderungen erfordern, können ebenfalls den Azure Web PubSub-Dienst verwenden.

Sie können diese Bibliothek auf der App-Serverseite verwenden, um die WebSocket-Clientverbindungen zu verwalten, wie in der folgenden Abbildung dargestellt:

The overflow diagram shows the overflow of using the service client library.

Sie können diese Bibliothek für Folgendes verwenden:

  • Das Versenden von Nachrichten an Hubs und Gruppen.
  • Das Versenden von Nachrichten an bestimmte Benutzer und Verbindungen.
  • Das Organisieren von Benutzern und Verbindungen in Gruppen.
  • Enge Verbindungen.
  • Erteilen, Entziehen und Überprüfen von Berechtigungen für eine bestehende Verbindung.

Voraussetzungen

  • Für die Verwendung dieses Pakets ist Python 3.6 oder höher erforderlich.
  • Sie benötigen ein Azure-Abonnement und eine Azure Web PubSub-Dienstinstanz, um dieses Paket zu verwenden.
  • Eine vorhandene Azure Web PubSub-Dienstinstanz.

Wichtig

Die Unterstützung von Azure SDK-Python-Paketen für Python 2.7 endet am 1. Januar 2022. Weitere Informationen finden Sie unter Unterstützung für Azure SDK-Python-Pakete.

Installieren des Pakets

Verwenden Sie diesen Befehl, um das Paket zu installieren:

python -m pip install azure-messaging-webpubsubservice

Erstellen und Authentifizieren einer WebPubSubServiceClient-Instanz

Sie können die WebPubSubServiceClient mittels einer Verbindungszeichenfolge authentifizieren:

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

>>> service = WebPubSubServiceClient.from_connection_string(connection_string='<connection_string>', hub='hub')

Oder Sie verwenden den Dienstendpunkt und den Zugriffsschlüssel:

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> from azure.core.credentials import AzureKeyCredential

>>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=AzureKeyCredential("<access_key>"))

Oder verwenden Sie die Microsoft Entra-ID:

  1. pip install azure-identity.

  2. Aktivieren Sie die Microsoft Entra-Autorisierung für Ihre Webpubsub-Ressource.

  3. Code aktualisieren, um DefaultAzureCredential zu verwenden.

    >>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
    >>> from azure.identity import DefaultAzureCredential
    >>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=DefaultAzureCredential())
    

Beispiele

Senden von Nachrichten im JSON-Format

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

>>> service = WebPubSubServiceClient.from_connection_string('<connection_string>', hub='hub1')
>>> service.send_to_all(message = {
        'from': 'user1',
        'data': 'Hello world'
    })

Der WebSocket-Client empfängt JSON serialisierten Text: {"from": "user1", "data": "Hello world"}.

Senden von Nachrichten im Klartextformat

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string('<connection_string>', hub='hub1')
>>> service.send_to_all(message = 'Hello world', content_type='text/plain')

Der WebSocket-Client empfängt Text: Hello world.

Senden von Nachrichten im Binärformat

>>> import io
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string('<connection_string>', hub='hub')
>>> service.send_to_all(message=io.StringIO('Hello World'), content_type='application/octet-stream')

Der WebSocket-Client empfängt binären Text: b'Hello world'.

Protokollierung

Dieses SDK verwendet die Python-Standardprotokollierungsbibliothek. Sie können die Protokollierung so konfigurieren, dass Debugging-Informationen in den stdout oder an einer beliebigen Stelle ausgegeben werden.

import sys
import logging
from azure.identity import DefaultAzureCredential
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

# Create a logger for the 'azure' SDK
logger = logging.getLogger('azure')
logger.setLevel(logging.DEBUG)

# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)

endpoint = "<endpoint>"
credential = DefaultAzureCredential()

# This WebPubSubServiceClient will log detailed information about its HTTP sessions, at DEBUG level
service = WebPubSubServiceClient(endpoint=endpoint, hub='hub', credential=credential, logging_enable=True)

In ähnlicher Weise kann logging_enable die detaillierte Protokollierung für einen einzelnen Aufruf aktivieren, auch wenn sie für den WebPubSubServiceClient nicht aktiviert ist:

result = service.send_to_all(..., logging_enable=True)

Die Details der HTTP-Anforderung und -Antwort werden bei dieser Protokollierungskonfiguration nach stdout ausgegeben.

Nächste Schritte

Weitere Beispiele finden Sie in der Azure Web PubSub-Dienstclientbibliothek für Python-Beispiele.

Contributing

This project welcomes contributions and suggestions. Für die meisten Beiträge ist die Zustimmung zu einer Lizenzvereinbarung für Mitwirkende (Contributor License Agreement, CLA) erforderlich, in der Sie erklären, dass Sie dazu berechtigt sind, uns die Rechte für die Nutzung Ihres Beitrags zu erteilen, und dies auch tun. Weitere Informationen finden Sie unter Lizenzvereinbarung für Mitwirkende (Contributor License Agreement, CLA).

Wenn Sie einen Pull Request (PR) übermitteln, ermittelt ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen, z. B. mit einer Bezeichnung oder einem Kommentar. Folgen Sie den Anweisungen des Bots. Sie müssen diesen Vorgang nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zu den Verhaltensregeln, oder kontaktieren Sie das Open Source Conduct Team mit Fragen oder Kommentaren.