Início Rápido: Difundir mensagens em tempo real do aplicativo de console
O Serviço do Azure SignalR fornece a API REST para dar suporte a cenários de comunicação do servidor para o cliente, como transmissão. Você pode escolher qualquer linguagem de programação que possa fazer chamadas à API REST. Você pode postar mensagens para todos os clientes conectados, 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 clientes conectados em C#.
Pré-requisitos
Este início rápido pode ser executado no macOS, Windows ou Linux.
- SDK do .NET Core
- Um editor de texto ou editor de código de sua escolha.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Entrar no Azure
Entre no portal do Azure usando a conta do Azure.
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Nesta seção, você criará 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 do Azure SignalR.
- Entre no portal do Azure.
- No canto superior esquerdo da página, escolha + Criar um recurso.
- Na página Criar um recurso, na caixa de texto serviços Pesquisa e marketplace, insira signalr e, em seguida, selecione Serviço do SignalR na lista.
- Na página Serviço do SignalR, selecione Criar.
- Na guia Noções básicas, você insere as informações essenciais para a nova instância do Serviço do SignalR. Insira os valores a seguir:
Campo | Valor sugerido | Descrição |
---|---|---|
Assinatura | Escolha sua assinatura | Selecione a assinatura que você deseja usar para criar uma nova instância do serviço do SignalR. |
Grupo de recursos | Criar um grupo de recursos chamado SignalRTestResources | Selecione ou crie um grupo de recursos para seu recurso do 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. Essa ação não pode ser desfeita. Antes de excluir um grupo de recursos, certifique-se de que ele não contenha os recursos que você deseja manter. Para obter mais informações, consulte Usando os grupos de recursos para gerenciar seus recursos do Azure. |
Nome do recurso | testsignalr | Insira um nome exclusivo do recurso a ser usado para o recurso do SignalR. Se testsignalr já estiver sendo usado em sua região, adicione um dígito ou caractere até que o nome seja exclusivo. O nome deve ser uma cadeia de caracteres com 1 a 63 caracteres, e deve conter somente números, letras e o hífen ( - ). O nome não pode começar nem terminar com o caractere hífen, e os caracteres hífen consecutivos não serão válidos. |
Região | Escolha a região | Selecione a região apropriada para sua nova instância do serviço do SignalR. O serviço do Azure SignalR não está disponível atualmente em todas as regiões. Para saber mais, confira Disponibilidade por região do serviço do Azure SignalR |
Tipo de preços | Selecione Alterar e, em seguida, escolha Gratuito (somente desenvolvimento/teste). Escolha Selecionar para confirmar sua escolha de tipo de preço. | O serviço do Azure SignalR tem três tipos de preço: Gratuito, Standard e Premium. Os tutoriais usam o tipo Gratuito, a menos que indicado de outra forma nos pré-requisitos. Para obter mais informações sobre as diferenças de funcionalidade entre tipos e preços, consulte preço do serviço do Azure SignalR |
Modo de serviço | Escolha o modo de serviço apropriado | Use Padrão quando hospedar a lógica do hub do SignalR em seus aplicativos Web e usar o serviço SignalR como um proxy. Use Sem servidor quando usar tecnologias sem servidor, como o Azure Functions, para hospedar a lógica do hub do SignalR. O modo Clássico é apenas para compatibilidade com versões anteriores e não é recomendável usar. Para obter mais informações, confira Modo de serviço no serviço do Azure SignalR. |
Você não precisa alterar as configurações nas guias Rede e Marcações para os tutoriais do SignalR.
- Selecione o botão Revisar + criar na parte inferior da guia Noções básicas.
- Na guia Revisar + Criar, revise os valores e, em seguida, selecione Criar. A implantação leva alguns momentos para ser concluída.
- Depois que a implantação estiver concluída, selecione o botão Ir para o recurso.
- Na tela de recursos do SignalR, selecione Chaves no menu à esquerda, em Configurações.
- Copie a Cadeia de conexão para a chave primária. Você precisará dessa cadeia de conexão para configurar seu aplicativo posteriormente neste tutorial.
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Clonar o aplicativo de exemplo
Enquanto o serviço está sendo implantado, vamos preparar o código. Clonar o aplicativo de amostra do GitHub. Em seguida, defina a cadeia de conexão do Serviço SignalR como o aplicativo. Por fim, execute o aplicativo localmente.
Abra uma janela de terminal git. Mude para uma pasta em que deseja clonar o projeto de exemplo.
Execute o comando a seguir para clonar o repositório de exemplo. Este comando cria uma cópia do aplicativo de exemplo no seu computador.
git clone https://github.com/aspnet/AzureSignalR-samples.git
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Criar e executar a amostra
Este exemplo é um aplicativo de console mostrando o uso do Azure SignalR Service. Ele fornece dois modos:
- Modo de servidor: use comandos simples para chamar a API REST do Azure SignalR Service.
- Modo cliente: conectar-se ao Azure SignalR Service e receber mensagens de servidor.
Você também aprenderá a gerar um token de acesso para se autenticar no Serviço do Azure SignalR.
Criar o arquivo executável
Como exemplo, usamos macOS osx.10.13-x64. Você pode encontrar referências sobre como criar em outras plataformas.
cd AzureSignalR-samples/samples/Serverless/
dotnet publish -c Release -r osx.10.13-x64
Iniciar um cliente
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>
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Executar o exemplo sem publicação
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>
Use segredos do usuário para especificar a Cadeia de Conexão
Você pode executar dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>"
no diretório raiz do exemplo. Depois disso, você não precisa mais da opção -c "<ConnectionString>"
.
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Uso
Depois que o servidor for iniciado, use o comando para enviar a mensagem:
send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast
Você pode iniciar vários clientes com nomes de clientes diferentes.
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Integração com serviços que não são da Microsoft
O Serviço do Azure SignalR permite que serviços que não são da Microsoft se integrem ao sistema.
Definição de especificações técnicas
A tabela a seguir mostra todas as versões das APIs REST com suporte atualmente. Você também pode encontrar o arquivo de definição de cada versão específica
Versão | Estado de API | Porta | Específicas |
---|---|---|---|
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 a seguir.
API | 1.0-preview | 1.0 |
---|---|---|
Transmitir para todos | ✓ | ✓ |
Transmitir para um grupo | ✓ | ✓ |
Transmitir para alguns grupos | ✓ (Preterido) | N / A |
Enviar para um usuário | ✓ | ✓ |
Enviar para alguns usuários | ✓ (Preterido) | N / A |
Adicionar um usuário a um grupo | N / A |
✓ |
Remover um usuário de um grupo | N / A |
✓ |
Verificar a existência do usuário | N / A |
✓ |
Remover um usuário de todos os grupos | N / A |
✓ |
Enviar para uma conexão | N / A |
✓ |
Adicionar uma conexão a um grupo | N / A |
✓ |
Remover uma conexão de um grupo | N / A |
✓ |
Fechar uma conexão de cliente | N / A |
✓ |
Integridade do Serviço | N / A |
✓ |
Transmitir para todos
Versão | Método HTTP da API | URL de Solicitação | Corpo da solicitação |
---|---|---|---|
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": [...]} |
Transmitir para um grupo
Versão | Método HTTP da API | URL de Solicitação | Corpo da solicitação |
---|---|---|---|
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": [...]} |
Envio para um usuário
Versão | Método HTTP da API | URL de Solicitação | Corpo da solicitação |
---|---|---|---|
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": [...]} |
Adicionar um usuário a um grupo
Versão | Método HTTP da API | URL de Solicitação |
---|---|---|
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Remover um usuário de um grupo
Versão | Método HTTP da API | URL de Solicitação |
---|---|---|
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 de Solicitação |
---|---|---|
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 status de resposta | Descrição |
---|---|
200 |
O usuário existe |
404 |
O usuário não existe |
Remover um usuário de todos os grupos
Versão da API | Método HTTP da API | URL de Solicitação |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups |
Enviar uma mensagem para uma conexão
Versão da API | Método HTTP da API | URL de Solicitação | Corpo da solicitação |
---|---|---|---|
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> |
{ "target":"<method-name>", "arguments":[ ... ] } |
Adicionar uma conexão a um grupo
Versão da API | Método HTTP da API | URL de Solicitação |
---|---|---|
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 conexão de um grupo
Versão da API | Método HTTP da API | URL de Solicitação |
---|---|---|
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 de Solicitação |
---|---|---|
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> |
Integridade do Serviço
Versão da API | Método HTTP da API | URL de Solicitação |
---|---|---|
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/health |
Código de status de resposta | Descrição |
---|---|
200 |
Serviço em execução |
5xx |
Erro de Serviço |
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Limpar os recursos
Se você não pretende continuar a usar este aplicativo, exclua todos os recursos criados por esse início rápido com as seguintes etapas para não incorrer em alterações:
No portal do Azure, selecione Grupos de recursos na extremidade esquerda, depois selecione o recurso de grupo que você criou. Como alternativa, você pode usar a caixa de pesquisa para localizar o grupo de recursos pelo nome.
Na janela que se abre, selecione o grupo de recursos e clique em Excluir grupo de recursos.
Na nova janela, digite o nome do grupo de recursos a ser excluído, depois clique em Excluir.
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Próximas etapas
Neste início rápido, você aprendeu como usar a API REST para transmitir mensagens em tempo real do SignalR Service aos clientes. Em seguida, saiba mais sobre como desenvolver e implantar o Azure Functions com SignalR Service associação, que é criada sobre a API REST.