Partilhar via


Azure Web PubSub service client library for Python

O Azure Web PubSub Service é um serviço gerido pelo Azure que ajuda os programadores a construir facilmente aplicações web com funcionalidades em tempo real e padrão de publicação-subscrição. Qualquer cenário que exija mensagens de publicação-subscrição em tempo real entre servidor e clientes ou entre clientes pode usar o serviço Azure Web PubSub. Funcionalidades tradicionais em tempo real, que frequentemente requerem sondagens do servidor ou submissão de pedidos HTTP, também podem usar o serviço Azure Web PubSub.

Pode usar esta biblioteca no lado do seu servidor de aplicações para gerir as ligações do cliente WebSocket, como mostrado no seguinte diagrama:

O diagrama de sobrecarga mostra a sobrecarga ao utilizar a biblioteca de cliente de serviço.

Use esta biblioteca para:

  • Envia mensagens para hubs e grupos.
  • Envie mensagens a utilizadores e ligações específicas.
  • Organizar utilizadores e ligações em grupos.
  • Ligações próximas.
  • Conceder, revogar e verificar permissões para uma ligação existente.

Pré-requisitos

Importante

O suporte para pacotes Python do Azure SDK para Python 2.7 termina a 01 de janeiro de 2022. Para mais informações, consulte o suporte a pacotes Python do Azure SDK.

Instale o pacote

Use este comando para instalar o pacote:

python -m pip install azure-messaging-webpubsubservice

Criar e autenticar um WebPubSubServiceClient

Pode autenticar o WebPubSubServiceClient usando uma cadeia de ligação:

>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient

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

Ou usar o endpoint 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. Ative a autorização Microsoft Entra no seu recurso Webpubsub.

  3. Atualizar 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())
    

Examples

Mensagens transmitidas 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 em JSON: {"from": "user1", "data": "Hello world"}.

Mensagens de difusão 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.

Mensagens de difusão 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'.

Exploração Florestal

Este SDK utiliza uma biblioteca de registo padrão em Python. Podes configurar o registo para imprimir informação de depuração para o stdout ou para onde quiseres.

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)

De forma semelhante, logging_enable pode permitir registos detalhados para uma única chamada, mesmo quando não está ativado para o WebPubSubServiceClient:

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

Os detalhes dos pedidos e respostas HTTP são impressos em stdout com esta configuração de registo.

Próximos passos

Para mais exemplos, consulte a biblioteca cliente de serviços Azure Web PubSub para Exemplos de Python.

Contributing

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 mais informações, consulte Contrato de Licença de Contribuidor.

Quando submete um pull request, um CLA-bot determina automaticamente se precisa de fornecer um CLA e marca o PR de forma apropriada, por exemplo, "etiqueta", "comentário". Siga as instruções fornecidas pelo bot. Só precisas de fazer esta ação uma vez em todos os repositórios usando o nosso CLA.

Este projeto adotou o Código de Conduta do Microsoft Open Source. Para mais informações, consulte o FAQ do Código de Conduta ou contacte a Equipa de Conduta Open Source com questões ou comentários.