Delen via


Azure Web PubSub-serviceclientbibliotheek voor Python

Azure Web PubSub Service is een door Azure beheerde service waarmee ontwikkelaars eenvoudig webtoepassingen kunnen bouwen met realtime functies en een patroon voor publiceren/abonneren. Elk scenario waarvoor realtime berichten voor publiceren/abonneren tussen server en clients of clients zijn vereist, kunnen de Azure Web PubSub-service gebruiken. Traditionele realtime-functies die vaak polling vereisen van de server of het verzenden van HTTP-aanvragen, kunnen ook gebruikmaken van de Azure Web PubSub-service.

U kunt deze bibliotheek aan de serverzijde van uw app gebruiken om de WebSocket-clientverbindingen te beheren, zoals wordt weergegeven in het volgende diagram:

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

Gebruik deze bibliotheek om:

  • Berichten verzenden naar hubs en groepen.
  • Berichten verzenden naar bepaalde gebruikers en verbindingen.
  • Organiseer gebruikers en verbindingen in groepen.
  • Sluit verbindingen.
  • Machtigingen voor een bestaande verbinding verlenen, intrekken en controleren.

Vereisten

Belangrijk

Ondersteuning voor Azure SDK Python-pakketten voor Python 2.7 eindigt op 01 januari 2022. Zie ondersteuning voor Azure SDK Python-pakketten voor meer informatie.

Het pakket installeren

Gebruik deze opdracht om het pakket te installeren:

python -m pip install azure-messaging-webpubsubservice

Een WebPubSubServiceClient maken en verifiëren

U kunt de WebPubSubServiceClient verificatie uitvoeren met behulp van een verbindingsreeks:

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

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

Of gebruik het service-eindpunt en de toegangssleutel:

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

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

Of gebruik Microsoft Entra-id:

  1. pip install azure-identity.

  2. Schakel Microsoft Entra-autorisatie in voor uw Webpubsub-resource.

  3. Werk code bij om DefaultAzureCredential te gebruiken.

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

Voorbeelden

Berichten uitzenden in JSON-indeling

>>> 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'
    })

De WebSocket-client ontvangt geserialiseerde JSON-tekst: {"from": "user1", "data": "Hello world"}.

Berichten uitzenden in tekst zonder opmaak

>>> 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')

De WebSocket-client ontvangt tekst: Hello world.

Berichten uitzenden in binaire indeling

>>> 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')

De WebSocket-client ontvangt binaire tekst: b'Hello world'.

Registratie in logboek

Deze SDK maakt gebruik van de standaardbibliotheek voor logboekregistratie van Python. U kunt logboekregistratie configureren om foutopsporingsgegevens naar de stdout gewenste locatie of naar wens af te drukken.

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)

Op dezelfde manier logging_enable kunt u gedetailleerde logboekregistratie inschakelen voor één aanroep, zelfs als deze niet is ingeschakeld voor het WebPubSubServiceClientvolgende:

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

Http-aanvraag- en antwoordgegevens worden afgedrukt stdout met deze logboekregistratieconfiguratie.

Volgende stappen

Zie de Clientbibliotheek van de Azure Web PubSub-service voor Python-voorbeelden voor meer voorbeelden.

Bijdragen

Dit project verwelkomt bijdragen en suggesties. Voor de meeste bijdragen moet u akkoord gaan met een Licentieovereenkomst voor inzenders (CLA) waarin wordt aangegeven dat u het recht hebt om, en daadwerkelijk, ons de rechten te verlenen om uw bijdrage te gebruiken. Zie Licentieovereenkomst voor inzenders voor meer informatie.

Wanneer u een pull-aanvraag indient, bepaalt een CLA-bot automatisch of u een CLA moet opgeven en de pull-aanvraag op de juiste wijze moet inrichten, bijvoorbeeld 'label', 'opmerking'. Volg de instructies van de bot. U hoeft deze actie slechts één keer uit te voeren voor alle opslagplaatsen met behulp van onze CLA.

Dit project onderschrijft de Microsoft Open Source gedragscode. Zie Veelgestelde vragen over gedragscodes voor meer informatie of neem contact op met het Open Source Conduct-team met vragen of opmerkingen.