Compartir vía


Biblioteca cliente del servicio Azure Web PubSub para Python

El servicio Azure Web PubSub es un servicio administrado por Azure que ayuda a los desarrolladores a crear fácilmente aplicaciones web con características en tiempo real y patrón de publicación y 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 sondeo desde el servidor o el envío de solicitudes HTTP también pueden usar el servicio Azure Web PubSub.

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

El diagrama de desbordamiento muestra el desbordamiento que supone el uso de la biblioteca cliente del servicio.

Use esta biblioteca para:

  • Enviar mensajes a centros y grupos.
  • Enviar mensajes a usuarios y conexiones concretos.
  • Organice los usuarios y las conexiones en grupos.
  • Cierre las conexiones.
  • Conceda, revoque y compruebe los permisos de una conexión existente.

Prerrequisitos

Importante

La compatibilidad con paquetes de Python del SDK de Azure para Python 2.7 finaliza el 01 de enero de 2022. Para más información, consulte 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 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())
    

Examples

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 plano

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

Del mismo modo, logging_enable puede habilitar el registro detallado para una sola llamada, incluso cuando no está habilitado para :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.

Contributing

Este proyecto da la bienvenida a las contribuciones y sugerencias. 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 obtener 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 proporcionadas por el bot. Solo será necesario que realice esta acción una vez en todos los repositorios con nuestro CLA.

Este proyecto ha adoptado el código de conducta de código abierto de Microsoft. Para obtener más información, consulte Preguntas más frecuentes sobre el código de conducta o póngase en contacto con el equipo de conducta de código abierto con preguntas o comentarios.