Compartir a través de


Biblioteca cliente del servicio Azure Web PubSub para Python

Azure Web PubSub es un servicio administrado de Azure que ayuda a los desarrolladores a compilar fácilmente aplicaciones web con características en tiempo real y patrón de publicación-suscripción. Cualquier escenario que requiera mensajería de publicación y suscripción en tiempo real entre el servidor y los clientes o entre clientes, puede usar el servicio Azure Web PubSub. Las características tradicionales en tiempo real que a menudo requieren tener que sondear desde el servidor o enviar solicitudes HTTP, también pueden usar el servicio Azure Web PubSub.

Puede usar esta biblioteca en el lado del servidor de aplicaciones para administrar las conexiones de cliente de WebSocket, como se muestra en el diagrama siguiente:

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

Use esta biblioteca para:

  • Enviar mensajes a centros y grupos.
  • Enviar mensajes a determinados usuarios y conexiones.
  • Organizar usuarios y conexiones en grupos.
  • Cerrar conexiones.
  • Conceder, revocar y comprobar permisos para una conexión existente.

Requisitos previos

Importante

La compatibilidad con paquetes de Python del SDK de Azure para Python 2.7 finaliza el 1 de enero de 2022. Para más información, vea Compatibilidad con paquetes de Python del SDK de Azure.

Instalar el paquete

Use este comando para instalar el paquete:

python -m pip install azure-messaging-webpubsubservice

Creación y autenticación de una instancia de WebPubSubServiceClient

Puede autenticar WebPubSubServiceClient mediante una cadena de conexión:

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

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

O bien, use el punto de conexión de servicio y la clave de acceso:

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

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

O bien, use el identificador de Entra de Microsoft:

  1. pip install azure-identity.

  2. Habilite la autorización de Microsoft Entra en el recurso webpubsub.

  3. Actualice el código para usar DefaultAzureCredential.

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

Ejemplos

Difusión de mensajes en 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'
    })

El cliente de WebSocket recibe texto serializado JSON: {"from": "user1", "data": "Hello world"}.

Difusión de mensajes en formato de texto sin formato

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

El cliente de WebSocket recibe texto: Hello world.

Difusión de mensajes en 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')

El cliente de WebSocket recibe texto binario: b'Hello world'.

Registro

Este SDK usa la biblioteca de registro estándar de Python. Puede configurar el registro para imprimir información de depuración en stdout o en cualquier ubicación que quiera.

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)

Igualmente, logging_enable puede habilitar el registro detallado de una sola llamada, aunque no esté habilitado para el cliente WebPubSubServiceClient:

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

Los detalles de solicitud y respuesta HTTP se imprimen en stdout con esta configuración de registro.

Pasos siguientes

Para más ejemplos, consulte Biblioteca cliente del servicio Azure Web PubSub para ejemplos de Python.

Contribución

Agradecemos las contribuciones y las sugerencias para el proyecto. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para más información, consulte Contrato de licencia de colaborador.

Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determina de forma automática si tiene que aportar un CLA y completar la PR adecuadamente, por ejemplo, "etiqueta" o "comentario". Siga las instrucciones que le dará el bot. Solo será necesario que realice esta acción una vez en todos los repositorios con nuestro CLA.

El proyecto ha adoptado el Código de conducta de código abierto de Microsoft. Para más información, vea las preguntas más frecuentes sobre el código de conducta o póngase en contacto con el equipo de conducta de código abierto si tiene preguntas o comentarios.