Libreria client del servizio Web PubSub di Azure per Python
Il servizio Web PubSub di Azure è un servizio gestito da Azure che consente agli sviluppatori di creare facilmente applicazioni Web con funzionalità in tempo reale e modello di pubblicazione-sottoscrizione. Qualsiasi scenario che richiede la messaggistica di pubblicazione-sottoscrizione in tempo reale tra server e client o tra i client può usare il servizio Web PubSub di Azure. Le funzionalità tradizionali in tempo reale che spesso richiedono il polling dal server o l'invio di richieste HTTP possono usare anche il servizio PubSub Web di Azure.
È possibile usare questa libreria sul lato server dell'app per gestire le connessioni client WebSocket, come illustrato nel diagramma seguente:
Usare questa libreria per:
- Inviare messaggi a hub e gruppi.
- Inviare messaggi a utenti e connessioni specifici.
- Organizzare utenti e connessioni in gruppi.
- Chiudere le connessioni.
- Concedere, revocare e controllare le autorizzazioni per una connessione esistente.
Prerequisiti
- Python 3.6 o versione successiva è necessario per usare questo pacchetto.
- Per usare questo pacchetto è necessaria una sottoscrizione di Azure e un'istanza del servizio WebPubSub di Azure.
- Istanza del servizio Web PubSub di Azure esistente.
Importante
Il supporto dei pacchetti Python di Azure SDK per Python 2.7 termina il 01 gennaio 2022. Per altre informazioni, vedere Supporto dei pacchetti Python di Azure SDK.
Installare il pacchetto
Usare questo comando per installare il pacchetto:
python -m pip install azure-messaging-webpubsubservice
Creare ed autenticare un WebPubSubServiceClient
È possibile autenticare WebPubSubServiceClient
usando un stringa di connessione:
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string(connection_string='<connection_string>', hub='hub')
In alternativa, usare l'endpoint del servizio e la chiave di accesso:
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> from azure.core.credentials import AzureKeyCredential
>>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=AzureKeyCredential("<access_key>"))
In alternativa, usare Microsoft Entra ID:
pip install
azure-identity
.Abilitare l'autorizzazione di Microsoft Entra nella risorsa Webpubsub.
Aggiornare il codice per usare DefaultAzureCredential.
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient >>> from azure.identity import DefaultAzureCredential >>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=DefaultAzureCredential())
Esempi
Trasmettere messaggi in formato 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'
})
Il client WebSocket riceve testo serializzato JSON: {"from": "user1", "data": "Hello world"}
.
Trasmettere messaggi in formato testo normale
>>> 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')
Il client WebSocket riceve testo: Hello world
.
Trasmettere messaggi in formato binario
>>> 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')
Il client WebSocket riceve testo binario: b'Hello world'
.
Registrazione
Questo SDK usa la libreria di registrazione standard python.
È possibile configurare la registrazione per stampare le informazioni di debug in o in stdout
qualsiasi punto desiderato.
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)
Analogamente, logging_enable
può abilitare la registrazione dettagliata per una singola chiamata, anche quando non è abilitata per :WebPubSubServiceClient
result = service.send_to_all(..., logging_enable=True)
I dettagli della richiesta e della risposta HTTP vengono stampati stdout
con questa configurazione di registrazione.
Passaggi successivi
- Codice sorgente
- Pacchetto (Pypi)
- Documentazione di riferimento delle API
- Documentazione del prodotto
Per altri esempi, vedere Libreria client del servizio Web PubSub di Azure per esempi python.
Contributo
This project welcomes contributions and suggestions. Per la maggior parte dei contenuti è necessario sottoscrivere un contratto di licenza di collaborazione (CLA, Contributor License Agreement) che stabilisce che l'utente ha il diritto di concedere, e di fatto concede a Microsoft i diritti d'uso del suo contributo. Per altre informazioni, vedere Contratto di licenza collaboratore.
Quando si invia una richiesta pull, un bot CLA determina automaticamente se è necessario fornire un contratto di licenza e decorare la richiesta pull in modo appropriato, ad esempio "etichetta", "commento". Seguire le istruzioni fornite dal bot. È sufficiente eseguire questa azione una sola volta in tutti i repository usando il contratto di licenza.
Questo progetto ha adottato il codice di comportamento open source Microsoft. Per altre informazioni, vedere Domande frequenti sul codice di comportamento o contattare il team di comportamento Open Source con domande o commenti.