Início rápido: Transmitir mensagens em tempo real a partir da aplicação de consola
O Serviço Azure SignalR fornece a API REST para dar suporte a cenários de comunicação entre servidores, como a transmissão. Você pode escolher qualquer linguagem de programação que possa fazer chamadas de API REST. Pode publicar mensagens para todos os clientes ligados, um cliente específico por nome ou um grupo de clientes.
Neste início rápido, você aprenderá a enviar mensagens de um aplicativo de linha de comando para aplicativos cliente conectados em C#.
Importante
As cadeias de conexão brutas aparecem neste artigo apenas para fins de demonstração.
Uma cadeia de conexão inclui as informações de autorização necessárias para seu aplicativo acessar o serviço Azure Web PubSub. A chave de acesso dentro da cadeia de conexão é semelhante a uma senha de root para o seu serviço. Em ambientes de produção, proteja sempre as suas chaves de acesso. Use o Azure Key Vault para gerenciar e girar suas chaves com segurança e proteger sua cadeia de conexão usando a ID do Microsoft Entra e autorizar o acesso com a ID do Microsoft Entra.
Evite distribuir chaves de acesso para outros usuários, codificá-las ou salvá-las em qualquer lugar em texto simples acessível a outras pessoas. Rode as chaves se acreditar que podem ter sido comprometidas.
Pré-requisitos
Este início rápido pode ser executado no macOS, Windows ou Linux.
- SDK .NET Core
- Um editor de texto ou editor de código da sua preferência.
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Tem problemas? Experimente o guia de resolução de problemas ou informe-nos.
Iniciar sessão no Azure
Inicie sessão no portal do Azure com a sua conta do Azure.
Tem problemas? Experimente o guia de resolução de problemas ou informe-nos.
Nesta seção, você cria uma instância básica do Azure SignalR para usar em seu aplicativo. As etapas a seguir usam o portal do Azure para criar uma nova instância, mas você também pode usar a CLI do Azure. Para obter mais informações, consulte o comando az signalr create na Referência da CLI do Serviço Azure SignalR.
- Inicie sessão no portal do Azure.
- No canto superior esquerdo da página, selecione + Criar um recurso.
- Na página Criar um recurso, na caixa de texto Serviços de pesquisa e marketplace, digite signalr e selecione Serviço SignalR na lista.
- Na página Serviço SignalR, selecione Criar.
- Na guia Noções básicas, você insere as informações essenciais para sua nova instância do Serviço SignalR. Introduza os seguintes valores:
Campo | Valor sugerido | Description |
---|---|---|
Subscrição | Selecione a sua subscrição | Selecione a assinatura que você deseja usar para criar uma nova instância do Serviço SignalR. |
Grupo de recursos | Criar um grupo de recursos chamado SignalRTestResources | Selecione ou crie um grupo de recursos para o seu recurso SignalR. É útil criar um novo grupo de recursos para este tutorial em vez de usar um grupo de recursos existente. Para liberar recursos depois de concluir o tutorial, exclua o grupo de recursos. A exclusão de um grupo de recursos também exclui todos os recursos que pertencem ao grupo. Esta ação não pode ser anulada. Antes de excluir um grupo de recursos, verifique se ele não contém recursos que você deseja manter. Para obter mais informações, veja Utilizar grupos de recursos para gerir os recursos do Azure. |
Nome do recurso | testsignalr | Introduza um nome de recurso exclusivo para utilizar no recurso do SignalR. Se o testsignalr já estiver em sua região, adicione um dígito ou caractere até que o nome seja exclusivo. O nome deve ser uma cadeia de 1 a 63 caracteres e conter apenas números, letras e o caractere hífen ( - ). O nome não pode começar ou terminar com o caractere de hífen e os caracteres de hífen consecutivos não são válidos. |
Região | Escolha a sua região | Selecione a região apropriada para sua nova instância do Serviço SignalR. O Serviço Azure SignalR não está atualmente disponível em todas as regiões. Para obter mais informações, consulte Disponibilidade da região do Serviço Azure SignalR |
Escalão de preço | Selecione Alterar e, em seguida, escolha Gratuito (Somente desenvolvimento/teste). Escolha Selecionar para confirmar sua escolha de nível de preço. | O Serviço Azure SignalR tem três níveis de preço: Gratuito, Standard e Premium. Os tutoriais usam o nível Gratuito , salvo indicação em contrário nos pré-requisitos. Para obter mais informações sobre as diferenças de funcionalidade entre camadas e preços, consulte Preços do Serviço Azure SignalR |
Modo de serviço | Escolha o modo de serviço apropriado | Use Padrão quando hospedar a lógica do hub SignalR em seus aplicativos Web e usar o serviço SignalR como proxy. Use Serverless quando usar tecnologias Serverless , como o Azure Functions, para hospedar a lógica do hub SignalR. O modo clássico é apenas para compatibilidade com versões anteriores e não é recomendado o uso. Para obter mais informações, consulte Modo de serviço no Serviço Azure SignalR. |
Não é necessário alterar as configurações nas guias Rede e Tags para os tutoriais do SignalR.
- Selecione o botão Rever + criar na parte inferior do separador Noções básicas .
- No separador Rever + criar, reveja os valores e, em seguida, selecione Criar. Leva alguns momentos para que a implantação seja concluída.
- Quando a implantação estiver concluída, selecione o botão Ir para recurso.
- Na página de recursos do SignalR, selecione Teclas no menu à esquerda, em Configurações.
- Copie a cadeia de conexão para a chave primária. Você precisa dessa cadeia de conexão para configurar seu aplicativo posteriormente neste tutorial.
Tem problemas? Experimente o guia de resolução de problemas ou informe-nos.
Clonar a aplicação de exemplo
Enquanto o serviço está sendo implantado, vamos preparar o código. Primeiro, clone o aplicativo de exemplo do GitHub. Em seguida, defina a cadeia de conexão do Serviço SignalR para o aplicativo. Finalmente, execute o aplicativo localmente.
Abra uma janela de terminal do git. Alterar para uma pasta em que quer clonar o projeto de exemplo.
Execute o seguinte comando para clonar o repositório de exemplo. Este comando cria uma cópia da aplicação de exemplo no seu computador.
git clone https://github.com/aspnet/AzureSignalR-samples.git
Tem problemas? Experimente o guia de resolução de problemas ou informe-nos.
Criar e executar o exemplo
Este exemplo é uma aplicação de consola que mostra a utilização do Azure SignalR Service. Ele oferece dois modos:
- Modo de Servidor: utilize comandos simples para chamar a API REST do Azure SignalR Service.
- Modo de Cliente: ligar ao Azure SignalR Service e receber mensagens do servidor.
Você também aprenderá como gerar um token de acesso para autenticar com o Serviço Azure SignalR.
Criar o ficheiro executável
Utilizamos o macOS osx.10.13-x64 como exemplo. Pode encontrar a referência sobre como criar noutras plataformas.
cd AzureSignalR-samples/samples/Serverless/
dotnet publish -c Release -r osx.10.13-x64
Iniciar um cliente
As cadeias de conexão brutas aparecem neste artigo apenas para fins de demonstração. Em ambientes de produção, proteja sempre as suas chaves de acesso. Use o Azure Key Vault para gerenciar e girar suas chaves com segurança e proteger sua cadeia de conexão usando a ID do Microsoft Entra e autorizar o acesso com a ID do Microsoft Entra.
cd bin/Release/netcoreapp2.1/osx.10.13-x64/
Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>
Iniciar um servidor
cd bin/Release/netcoreapp2.1/osx.10.13-x64/
Serverless server -c "<ConnectionString>" -h <HubName>
Tem problemas? Experimente o guia de resolução de problemas ou informe-nos.
Executar o exemplo sem publicar
Você também pode executar o seguinte comando para iniciar um servidor ou cliente
# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>
# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>
Utilize segredos do utilizador para especificar a Cadeia de Ligação
Pode executar dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>"
no diretório de raiz do exemplo. Depois disso, deixará de precisar da opção -c "<ConnectionString>"
.
Tem problemas? Experimente o guia de resolução de problemas ou informe-nos.
Utilização
Depois que o servidor for iniciado, use o comando para enviar mensagem:
send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast
Pode iniciar vários clientes com nomes de cliente diferentes.
Tem problemas? Experimente o guia de resolução de problemas ou informe-nos.
Integração com serviços que não são da Microsoft
O serviço Azure SignalR permite que serviços que não sejam da Microsoft se integrem ao sistema.
Definição de especificações técnicas
A tabela seguinte mostra todas as versões das APIs REST suportadas até à data. Também pode encontrar o ficheiro de definição para cada versão específica
Versão | Estado da API | Porta | Específico |
---|---|---|---|
1.0-preview |
Disponível | 5002 | Swagger |
1.0 |
Disponível | Standard | Swagger |
A lista de APIs disponíveis para cada versão específica está disponível na lista seguinte.
API | 1.0-Pré-visualização | 1.0 |
---|---|---|
Difundir para todos | ✓ | ✓ |
Difundir para um grupo | ✓ | ✓ |
Difundir para alguns grupos | ✓ (Preterido) | N / A |
Enviar a um utilizador | ✓ | ✓ |
Enviar para alguns utilizadores | ✓ (Preterido) | N / A |
A adicionar um utilizador a um grupo | N / A |
✓ |
A remover um utilizador de um grupo | N / A |
✓ |
Verificar a existência do usuário | N / A |
✓ |
Remover um utilizador de todos os grupos | N / A |
✓ |
Enviar para uma ligação | N / A |
✓ |
Adicionar uma ligação a um grupo | N / A |
✓ |
Remover uma ligação de um grupo | N / A |
✓ |
Fechar uma conexão de cliente | N / A |
✓ |
Estado de funcionamento dos serviços | N / A |
✓ |
Difundir para todos
Versão | Método HTTP da API | URL do Pedido | Corpo do pedido |
---|---|---|---|
1.0-preview |
POST |
https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name> |
{"target": "<method-name>", "arguments": [...]} |
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name> |
{"target": "<method-name>", "arguments": [...]} |
Difundir para um grupo
Versão | Método HTTP da API | URL do Pedido | Corpo do pedido |
---|---|---|---|
1.0-preview |
POST |
https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/group/<group-name> |
{"target": "<method-name>", "arguments": [...]} |
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name> |
{"target": "<method-name>", "arguments": [...]} |
Enviar a um utilizador
Versão | Método HTTP da API | URL do Pedido | Corpo do pedido |
---|---|---|---|
1.0-preview |
POST |
https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/user/<user-id> |
{"target": "<method-name>", "arguments": [...]} |
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id> |
{"target": "<method-name>", "arguments": [...]} |
A adicionar um utilizador a um grupo
Versão | Método HTTP da API | URL do Pedido |
---|---|---|
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
A remover um utilizador de um grupo
Versão | Método HTTP da API | URL do Pedido |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Verificar a existência do usuário em um grupo
Versão da API | Método HTTP da API | URL do Pedido |
---|---|---|
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups/<group-name> |
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Código de Estado da Resposta | Description |
---|---|
200 |
O usuário existe |
404 |
O usuário não existe |
Remover um utilizador de todos os grupos
Versão da API | Método HTTP da API | URL do Pedido |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups |
Enviar mensagem para uma ligação
Versão da API | Método HTTP da API | URL do Pedido | Corpo do Pedido |
---|---|---|---|
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> |
{ "target":"<method-name>", "arguments":[ ... ] } |
Adicionar uma ligação a um grupo
Versão da API | Método HTTP da API | URL do Pedido |
---|---|---|
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id> |
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name> |
Remover uma ligação de um grupo
Versão da API | Método HTTP da API | URL do Pedido |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id> |
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name> |
Fechar uma conexão de cliente
Versão da API | Método HTTP da API | URL do Pedido |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> |
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>?reason=<close-reason> |
Service Health
Versão da API | Método HTTP da API | URL do Pedido |
---|---|---|
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/health |
Código de Estado da Resposta | Description |
---|---|
200 |
Bom Serviço |
5xx |
Erro de serviço |
Tem problemas? Experimente o guia de resolução de problemas ou informe-nos.
Clean up resources (Limpar recursos)
Se não pretender continuar a utilizar esta aplicação, elimine todos os recursos criados com este início rápido com os seguintes passos, para não lhe serem cobrados custos:
No portal do Azure, selecione Grupos de recursos à esquerda e, em seguida, selecione o grupo de recursos que criou. Em alternativa, pode utilizar a caixa de pesquisa para pesquisar o grupo de recursos pelo seu nome.
Na janela que abre, selecione o grupo de recursos e clique em Eliminar grupo de recursos.
Na nova janela, escreva o nome do grupo de recursos a eliminar e, em seguida, clique em Eliminar.
Tem problemas? Experimente o guia de resolução de problemas ou informe-nos.
Próximos passos
Neste guia de início rápido, você aprendeu como usar a API REST para transmitir mensagens em tempo real do Serviço SignalR para clientes. Em seguida, saiba mais sobre como desenvolver e implantar o Azure Functions com a vinculação do Serviço SignalR, que é criada com base na API REST.