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:
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
- Python 3.6 of hoger is vereist voor het gebruik van dit pakket.
- U hebt een Azure-abonnement en een Azure WebPubSub-service-exemplaar nodig om dit pakket te kunnen gebruiken.
- Een bestaand Exemplaar van de Azure Web PubSub-service.
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:
pip install
azure-identity
.Schakel Microsoft Entra-autorisatie in voor uw Webpubsub-resource.
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 WebPubSubServiceClient
volgende:
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.