Partilhar via


Guia de início rápido: publicar mensagens usando o SDK do serviço Azure Web PubSub

O Azure Web PubSub ajuda você a gerenciar clientes WebSocket. Este guia de início rápido mostra como publicar mensagens em clientes WebSocket usando o SDK do serviço Azure Web PubSub.

Pré-requisitos

  • Uma assinatura do Azure, se você não tiver uma, crie uma conta gratuita.
  • um shell de comando Bash e PowerShell. Os exemplos de Python, JavaScript e Java requerem um shell de comando Bash.
  • Um editor de arquivos, como o VS Code.
  • CLI do Azure: instalar a CLI do Azure

Se estiver criando o projeto em uma máquina local, você precisará instalar as dependências para o idioma que está usando:

Instale o SDK do .NET Core e o aspnetcore tempo de execução e dotnet.

Núcleo do .NET

1. Configuração

Para entrar no Azure a partir da CLI, execute o seguinte comando e siga os prompts para concluir o processo de autenticação. Se você estiver usando o Cloud Shell, não é necessário fazer login.

az login

Verifique se você está executando a versão mais recente da CLI por meio do comando upgrade.

az upgrade

Em seguida, instale ou atualize a extensão Azure Web PubSub para a CLI, caso ela não tenha sido instalada com az upgradeo .

az extension add --name webpubsub --upgrade

1. Criar um grupo de recursos

Defina as seguintes variáveis de ambiente. Substitua o espaço reservado <> por um nome exclusivo do Web PubSub.

RESOURCE_GROUP="webpubsub-resource-group"
LOCATION="EastUS"
WEB_PUBSUB_NAME="<your-unique-name>"

Crie um grupo de recursos para o projeto Web PubSub.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

2. Implantar uma instância de serviço Web PubSub

Use o az webpubsub create comando para criar e implantar uma instância de serviço Web PubSub.

az webpubsub create \
  --name $WEB_PUBSUB_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --sku Free_F1

Salve a cadeia de conexão do serviço. A cadeia de conexão é usada pelo SDK do serviço para publicar mensagens.

Importante

Em um ambiente de produção, você deve armazenar cadeias de conexão com segurança usando o Cofre de Chaves do Azure.

az webpubsub key show --name $WEB_PUBSUB_NAME --resource-group $RESOURCE_GROUP --query primaryConnectionString

3. Conectar um cliente à instância de serviço

Crie um cliente Web PubSub. O cliente mantém uma conexão com o serviço até que ele seja encerrado.

Use o az webpubsub client comando para iniciar uma conexão de cliente WebSocket com o serviço. Os clientes sempre se conectam a um hub, portanto, forneça um nome de hub para o cliente se conectar.

az webpubsub client start \
  --name $WEB_PUBSUB_NAME \
  --resource-group $RESOURCE_GROUP \
  --hub-name "myHub1" \
  --user-id "user1"

A conexão com o serviço Web PubSub é estabelecida quando você vê uma mensagem JSON indicando que o cliente agora está conectado com êxito e é atribuído um exclusivo connectionId:

{"type":"system","event":"connected","userId":"user1","connectionId":"<your_unique_connection_id>"}

4. Publicar mensagens usando o SDK do serviço

Você usará o SDK do Azure Web PubSub para publicar uma mensagem para todos os clientes conectados ao hub. Você pode escolher entre C#, JavaScript, Python e Java. As dependências para cada idioma são instaladas nas etapas para esse idioma. Python, JavaScript e Java requerem um shell bash para executar os comandos neste início rápido.

Configurar o projeto para publicar mensagens

  1. Abra um novo shell de comando para este projeto.

  2. Salve a cadeia de conexão do shell do cliente. Substitua o espaço reservado <your_connection_string> pela cadeia de conexão exibida em uma etapa anterior.

    connection_string="<your_connection_string>"
    
  3. Agora, selecione o idioma para o seu projeto.

  1. Adicione um novo projeto chamado publisher e o pacote Azure.Messaging.WebPubSubSDK .

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Atualize o Program.cs arquivo para usar a WebPubSubServiceClient classe para enviar mensagens aos clientes. Substitua o código no Program.cs arquivo com o código a seguir.

    using System;
    using System.Threading.Tasks;
    using Azure.Messaging.WebPubSub;
    
    namespace publisher
    {
        class Program
        {
            static async Task Main(string[] args)
            {
                if (args.Length != 3) {
                    Console.WriteLine("Usage: publisher <connectionString> <hub> <message>");
                    return;
                }
                var connectionString = args[0];
                var hub = args[1];
                var message = args[2];
    
                var service = new WebPubSubServiceClient(connectionString, hub);
    
                // Send messages to all the connected clients
                // You can also try SendToConnectionAsync to send messages to the specific connection
                await service.SendToAllAsync(message);
            }
        }
    }
    

    A service.SendToAllAsync() chamada simplesmente envia uma mensagem para todos os clientes conectados no hub.

  3. Execute o seguinte comando para publicar uma mensagem no serviço.

    dotnet run $connection_string "myHub1" "Hello World"
    
  4. O shell de comando anterior que contém o cliente Web PubSub mostra a mensagem recebida.

    {"type":"message","from":"server","dataType":"text","data":"Hello World"}
    

Limpeza

Você pode excluir os recursos criados neste início rápido excluindo o grupo de recursos que os contém.

az group delete --name $RESOURCE_GROUP --yes