Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure Web PubSub ajuda você a gerenciar clientes WebSocket. Este início rápido mostra como publicar mensagens para 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. As amostras de Python, JavaScript e Java exigem 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 um computador local, você precisará instalar as dependências da linguagem que estiver usando:
Instale o SDK do .NET Core e o aspnetcore e o dotnet runtime.
1. Instalação
Para entrar no Azure usando a CLIl, execute o comando a seguir e siga os prompts para concluir o processo de autenticação. Se você estiver usando Cloud Shell, não será necessário entrar.
az login
Verifique se você está executando a versão mais recente da CLI com o comando de atualização.
az upgrade
Em seguida, instale ou atualize a extensão do Azure Web PubSub para a CLI se ela não foi instalada com az upgrade.
az extension add --name webpubsub --upgrade
1. Criar um grupo de recursos
Defina as variáveis de ambiente a seguir. Substitua o <espaço reservado> por um nome do Web PubSub exclusivo.
RESOURCE_GROUP="webpubsub-resource-group"
LOCATION="EastUS"
WEB_PUBSUB_NAME="<your-unique-name>"
Crie um grupo de recursos para o projeto do Web PubSub.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
2. Implantar uma instância de serviço do Web PubSub
Use o comando az webpubsub create para criar e implantar uma instância de serviço do 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 com segurança cadeias de conexão usando o Azure Key Vault.
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 do Web PubSub. O cliente mantém uma conexão com o serviço até que ele seja encerrado.
Use o comando az webpubsub client para iniciar uma conexão de cliente WebSocket ao 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 ao serviço Web PubSub é estabelecida quando você vir uma mensagem JSON, indicando que o cliente agora está conectado com êxito e foi atribuído com um connectionId exclusivo:
{"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. É possível escolher entre C#, JavaScript, Python e Java. As dependências de cada linguagem são instaladas nas etapas para essa linguagem. Python, JavaScript e Java exigem um shell bash para executar os comandos neste início rápido.
Configurar o projeto para publicar mensagens
Abra um novo shell de comando para este projeto.
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>"Agora, selecione a linguagem do projeto.
Adicione um novo projeto nomeado como
publishere adicione o pacote do SDKAzure.Messaging.WebPubSub.mkdir publisher cd publisher dotnet new console dotnet add package Azure.Messaging.WebPubSubAtualize o arquivo
Program.cspara usar a classeWebPubSubServiceCliente enviar mensagens aos clientes. Substitua o código no arquivoProgram.cspelo 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 chamada
service.SendToAllAsync()simplesmente envia uma mensagem a todos os clientes conectados no hub.Execute o comando a seguir para publicar uma mensagem no serviço.
dotnet run $connection_string "myHub1" "Hello World"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
Remova os recursos criados neste início rápido ao excluir o grupo de recursos que os contém.
az group delete --name $RESOURCE_GROUP --yes