Dela via


Klientbibliotek för Azure Web PubSub-tjänsten för Python

Azure Web PubSub Service är en Azure-hanterad tjänst som hjälper utvecklare att enkelt skapa webbprogram med realtidsfunktioner och publiceringsprenumerationsmönster. Alla scenarion som kräver publiceringsprenumerationsmeddelanden i realtid mellan server och klienter eller mellan klienter kan använda Azure Web PubSub-tjänsten. Traditionella realtidsfunktioner som ofta kräver avsökning från servern eller skicka HTTP-begäranden kan också använda Azure Web PubSub-tjänsten.

Du kan använda det här biblioteket på appserversidan för att hantera WebSocket-klientanslutningarna, enligt följande diagram:

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

Använd det här biblioteket för att:

  • Skicka meddelanden till hubbar och grupper.
  • Skicka meddelanden till vissa användare och anslutningar.
  • Organisera användare och anslutningar i grupper.
  • Stäng anslutningar.
  • Bevilja, återkalla och kontrollera behörigheter för en befintlig anslutning.

Förutsättningar

Viktigt!

Stöd för Azure SDK Python-paket för Python 2.7 upphör den 1 januari 2022. Mer information finns i Stöd för Azure SDK Python-paket.

Installera -paketet

Använd det här kommandot för att installera paketet:

python -m pip install azure-messaging-webpubsubservice

Skapa och autentisera en WebPubSubServiceClient

Du kan autentisera med hjälp av WebPubSubServiceClient en anslutningssträng:

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

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

Eller använd tjänstslutpunkten och åtkomstnyckeln:

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

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

Eller använd Microsoft Entra-ID:

  1. pip install azure-identity.

  2. Aktivera Microsoft Entra-auktorisering på din Webpubsub-resurs.

  3. Uppdatera koden för att använda DefaultAzureCredential.

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

Exempel

Sända meddelanden i 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'
    })

WebSocket-klienten tar emot JSON-serialiserad text: {"from": "user1", "data": "Hello world"}.

Sända meddelanden i oformaterad textformat

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

WebSocket-klienten tar emot text: Hello world.

Sända meddelanden i binärt format

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

WebSocket-klienten tar emot binär text: b'Hello world'.

Loggning

Den här SDK:t använder Pythons standardloggningsbibliotek. Du kan konfigurera loggning för att skriva ut felsökningsinformation till eller stdout var du vill.

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)

logging_enable På samma sätt kan du aktivera detaljerad loggning för ett enda anrop, även om det inte är aktiverat för WebPubSubServiceClient:

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

INFORMATION om HTTP-begäran och svar skrivs ut till stdout med den här loggningskonfigurationen.

Nästa steg

Fler exempel finns i Klientbiblioteket för Azure Web PubSub-tjänsten för Python-exempel.

Bidrar

Det här projektet välkomnar bidrag och förslag. De flesta bidrag kräver att du godkänner ett licensavtal för deltagare (CLA) som förklarar att du har rätt att, och faktiskt gör det, ge oss rätten att använda ditt bidrag. Mer information finns i Licensavtal för deltagare.

När du skickar en pull-begäran avgör en CLA-robot automatiskt om du behöver tillhandahålla ett CLA och dekorera PR på rätt sätt, till exempel "etikett", "kommentar". Följ anvisningarna från roboten. Du behöver bara göra den här åtgärden en gång för alla lagringsplatser med vår CLA.

Det här projektet har antagit Microsoft Open Source Code of Conduct (Microsofts regler för uppförande för öppen källkod). Mer information finns i Vanliga frågor och svar om uppförandekod eller kontakta Open Source Conduct Team med frågor eller kommentarer.