Sdílet prostřednictvím


Klientská knihovna služby Azure Web PubSub pro Python

Azure Web PubSub Service je služba spravovaná v Azure, která vývojářům pomáhá snadno vytvářet webové aplikace s funkcemi v reálném čase a vzorem publikování a odběru. Jakýkoli scénář, který vyžaduje zasílání zpráv publikování a odběru v reálném čase mezi servery a klienty nebo mezi klienty, může používat službu Azure Web PubSub. Tradiční funkce v reálném čase, které často vyžadují dotazování ze serveru nebo odesílání požadavků HTTP, můžou také používat službu Azure Web PubSub.

Tuto knihovnu můžete použít na straně aplikačního serveru ke správě připojení klienta WebSocket, jak je znázorněno v následujícím diagramu:

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

Pomocí této knihovny můžete:

  • Odesílání zpráv do center a skupin
  • Odesílání zpráv konkrétním uživatelům a připojením
  • Uspořádejte uživatele a připojení do skupin.
  • Ukončete připojení.
  • Udělte, odvoláte a zkontrolujte oprávnění pro existující připojení.

Předpoklady

  • K použití tohoto balíčku se vyžaduje Python 3.6 nebo novější.
  • K použití tohoto balíčku potřebujete předplatné Azure a instanci služby Azure WebPubSub.
  • Existující instance služby Azure Web PubSub.

Důležité

Podpora balíčků Python sady Azure SDK pro Python 2.7 končí 1. ledna 2022. Další informace najdete v tématu Podpora balíčků Python sady Azure SDK.

Nainstalujte balíček .

Pomocí tohoto příkazu nainstalujte balíček:

python -m pip install azure-messaging-webpubsubservice

Vytvoření a ověření WebPubSubServiceClient

Ověřování můžete WebPubSubServiceClient provést pomocí připojovací řetězec:

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

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

Nebo použijte koncový bod služby a přístupový klíč:

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

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

Nebo použijte ID Microsoft Entra:

  1. pip install azure-identity.

  2. Povolte u prostředku Webpubsub autorizaci Microsoft Entra.

  3. Aktualizujte kód tak, aby používal DefaultAzureCredential.

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

Příklady

Vysílání zpráv ve formátu JSON

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

Klient WebSocket přijímá serializovaný text JSON: {"from": "user1", "data": "Hello world"}.

Vysílání zpráv ve formátu prostého textu

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

Klient WebSocket obdrží text: Hello world.

Vysílání zpráv v binárním formátu

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

Klient WebSocket přijímá binární text: b'Hello world'.

Protokolování

Tato sada SDK používá standardní knihovnu protokolování Pythonu. Protokolování můžete nakonfigurovat tak, aby se informace o ladění tiskly na stdout požadované nebo libovolné místo.

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 Podobně můžete povolit podrobné protokolování pro jedno volání, i když není povoleno proWebPubSubServiceClient:

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

Podrobnosti požadavku HTTP a odpovědi se vytisknou s stdout touto konfigurací protokolování.

Další kroky

Další ukázky najdete v klientské knihovně služby Azure Web PubSub pro ukázky Pythonu.

Přispívající

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která deklaruje, že máte právo a ve skutečnosti nám udělíte práva k používání vašeho příspěvku. Další informace najdete v tématu Licenční smlouva s přispěvatelem.

Když odešlete žádost o přijetí změn, robot CLA automaticky určí, jestli potřebujete poskytnout CLA a odpovídajícím způsobem vyzdobit žádost o přijetí změn, například "label", "comment". Postupujte podle pokynů poskytovaných robotem. Tuto akci stačí provést jenom jednou napříč všemi úložištěmi pomocí naší cla.

Tento projekt se řídí Pravidly chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k kodexu chování nebo se obraťte na tým chování open source s dotazy nebo komentáři.