Partilhar via


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

O Serviço Azure Web PubSub é um serviço gerenciado pelo Azure que ajuda os desenvolvedores a criar facilmente aplicativos Web 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 os clientes pode usar o serviço Azure Web PubSub. Recursos tradicionais em tempo real que geralmente exigem sondagem do servidor ou 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 do cliente WebSocket, conforme mostrado no diagrama a seguir:

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

Use esta biblioteca para:

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

Pré-requisitos

  • Python 3.6 ou posterior é necessário para usar este pacote.
  • Você precisa de uma assinatura do Azure e uma instância de serviço do Azure WebPubSub para usar este pacote.
  • Uma instância de serviço Azure Web PubSub existente.

Importante

O suporte aos pacotes Python do SDK do Azure para Python 2.7 termina em 01 de janeiro de 2022. Para obter mais informações, consulte Suporte a pacotes Python do 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 uma 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 do 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 instalar 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 em 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 texto serializado JSON: {"from": "user1", "data": "Hello world"}.

Difundir mensagens em formato de texto simples

>>> 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 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 texto binário: b'Hello world'.

Registo

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

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, pode habilitar o registro detalhado para uma única chamada, logging_enable mesmo quando ele não está habilitado para o WebPubSubServiceClient:

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

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

Próximos passos

Para obter mais exemplos, consulte Biblioteca de cliente do serviço Azure Web PubSub para exemplos de Python.

Contribuição

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

Quando você envia uma solicitação pull, um CLA-bot determina automaticamente se você precisa fornecer um CLA e decorar o PR adequadamente, por exemplo, "rótulo", "comentário". Siga as instruções fornecidas pelo bot. Você só precisa fazer essa ação uma vez em todos os repositórios usando nosso CLA.

Este projeto adotou o Código de Conduta Open Source da Microsoft. Para obter mais informações, consulte Perguntas frequentes sobre o Código de Conduta ou entre em contato com a Equipe de Conduta de Código Aberto com perguntas ou comentários.