Compartilhar via


Biblioteca de clientes do serviço Azure Web PubSub para Python

O serviço Azure Web PubSub é um serviço gerenciado do Azure que ajuda os desenvolvedores a criar aplicativos Web facilmente com recursos em tempo real e padrão de publicação/assinatura. Qualquer cenário que exija mensagens de publicação/assinatura em tempo real entre o servidor e os clientes ou entre clientes pode usar o serviço Azure Web PubSub. Os recursos tradicionais em tempo real que geralmente exigem a sondagem do servidor ou o envio de solicitações HTTP também podem usar o serviço Azure Web PubSub.

Você pode usar essa biblioteca no lado do servidor de aplicativos para gerenciar as conexões de cliente WebSocket, conforme mostrado no diagrama a seguir:

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

Use essa biblioteca para:

  • Enviar mensagens para hubs e grupos.
  • Enviar mensagens para usuários e conexões específicos.
  • Organizar usuários e conexões em grupos.
  • Fechar conexões.
  • Conceder, revogar e verificar permissões para uma conexão existente.

Pré-requisitos

Importante

O suporte a pacotes do Python do SDK do Azure para o Python 2.7 vai terminar em 1º de janeiro de 2022. Para obter mais informações, confira Suporte a pacotes Python para SDK do Azure.

Instalar o pacote

Use este comando para instalar o pacote:

python -m pip install azure-messaging-webpubsubservice

Criar e autenticar um WebPubSubServiceClient

Você pode autenticar o WebPubSubServiceClient usando a cadeia de conexão:

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

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

Ou use o ponto de extremidade de serviço e a chave de acesso:

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

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

Ou use o Microsoft Entra ID:

  1. pip install azure-identity.

  2. Habilite a autorização do Microsoft Entra em seu recurso Webpubsub.

  3. Atualize o código para usar DefaultAzureCredential.

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

Exemplos

Transmitir mensagens no 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'
    })

O cliente WebSocket recebe um texto serializado JSON: {"from": "user1", "data": "Hello world"}.

Transmitir mensagens em formato de texto sem formatação

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

O cliente WebSocket recebe um texto: Hello world.

Transmitir mensagens em formato binário

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

O cliente WebSocket recebe um texto binário: b'Hello world'.

Registrando em log

Esse SDK usa a biblioteca de log padrão do Python. Você pode configurar o registro em log para imprimir informações de depuração em stdout ou em qualquer lugar que deseje.

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)

Da mesma forma, logging_enable pode habilitar o log detalhado para uma chamada individual, mesmo quando não estiver habilitado para o WebPubSubServiceClient:

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

Os detalhes de solicitação e resposta HTTP são impressos em stdout com essa configuração de registro em log.

Próximas etapas

Para obter mais exemplos, consulte a biblioteca de clientes de serviço do Azure Web PubSub para Exemplos em Python.

Participante

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder e de fato concede, os direitos de usar sua contribuição. Para obter mais informações, consulte o Contrato de Licença de Colaborador.

Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente, por exemplo, “rótulo”, “comentário”. Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para saber mais, confira as Perguntas frequentes sobre o Código de Conduta ou contate aEquipe de Conduta de Código Aberto caso tenha outras dúvidas ou comentários.