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:
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
- Se requiere Python 3.6 o posterior para usar este paquete.
- Se necesitan una suscripción de Azure y una instancia de servicio Azure WebPubSub para usar este paquete.
- Una instancia existente del servicio Azure Web PubSub.
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:
pip install
azure-identity
.Habilite la autorización de Microsoft Entra en el recurso webpubsub.
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.