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:
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:
pip install
azure-identity
.Povolte u prostředku Webpubsub autorizaci Microsoft Entra.
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.