Partage via


Bibliothèque de client du service Azure Web PubSub pour Python

Le service Azure Web PubSub est un service géré Azure qui aide les développeurs à créer facilement des applications web avec des fonctionnalités en temps réel et un modèle publication-abonnement. Tout scénario qui nécessite une messagerie de type publication-abonnement en temps réel entre un serveur et des clients ou entre des clients peut avoir recours au service Azure Web PubSub. Les fonctionnalités en temps réel traditionnelles qui demandent souvent d’interroger un serveur ou d’envoyer des requêtes HTTP peuvent aussi utiliser le service Azure Web PubSub.

Vous pouvez utiliser cette bibliothèque du côté de votre serveur d’applications pour gérer les connexions client WebSocket, comme indiqué dans le diagramme suivant :

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

Utilisez cette bibliothèque pour effectuer les opérations suivantes :

  • Envoyer des messages à des hubs et des groupes.
  • Envoyer des messages à des utilisateurs et des connexions particuliers.
  • Organiser des utilisateurs et des connexions en groupes.
  • Fermer les connexions.
  • Accorder, révoquer et vérifier des autorisations pour une connexion existante.

Prérequis

Important

La prise en charge des packages Python du SDK Azure pour Python 2.7 prend fin le 1er janvier 2022. Pour plus d’informations, consultez Prise en charge des packages Python du SDK Azure.

Installer le package

Utilisez cette commande pour installer le package :

python -m pip install azure-messaging-webpubsubservice

Créer et authentifier un WebPubSubServiceClient

Vous pouvez authentifier le WebPubSubServiceClient à l’aide d’une chaîne de connexion :

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

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

Ou utiliser le point de terminaison de service et la clé d’accès :

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

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

Ou utilisez l’ID Microsoft Entra :

  1. pip install azure-identity.

  2. Activez l’autorisation Microsoft Entra sur votre ressource Webpubsub.

  3. Mettez à jour le code pour utiliser DefaultAzureCredential.

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

Exemples

Diffuser des messages au format 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'
    })

Le client WebSocket reçoit le texte sérialisé JSON : {"from": "user1", "data": "Hello world"}.

Diffuser des messages au format texte brut

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

Le client WebSocket reçoit le texte : Hello world.

Diffuser des messages au format binaire

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

Le client WebSocket reçoit le texte binaire : b'Hello world'.

Journalisation

Ce kit de développement logiciel (SDK) utilise la bibliothèque de journalisation standard Python. Vous pouvez configurer la journalisation pour imprimer les informations de débogage dans le stdout ou tout autre emplacement de votre choix.

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)

De la même façon, logging_enable peut activer la journalisation détaillée pour un seul appel, même si elle n’est pas activée pour le WebPubSubServiceClient :

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

Avec cette configuration de journalisation, les détails de la requête et de la réponse HTTP sont imprimés dans stdout.

Étapes suivantes

Pour plus d’exemples, consultez Bibliothèque de client du service Azure Web PubSub pour les exemples Python.

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions nécessitent que vous acceptiez un accord de licence de contributeur (CLA) déclarant que vous avez le droit et que vous nous accordez effectivement les droits d'utiliser votre contribution. Pour plus d’informations, consultez Contrat de licence contributeur.

Lorsque vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les référentiels utilisant notre contrat CLA.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez la FAQ sur le Code de conduite ou contactez l’équipe Open Source Conduct pour vos questions ou commentaires.