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 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#.
Importante
As cadeias de conexão brutas aparecem neste artigo somente para fins de demonstração.
Uma cadeia de conexão inclui as informações de autorização necessárias para que seu aplicativo acesse o Serviço do Azure SignalR. A chave de acesso dentro da cadeia de conexão é semelhante a uma senha raiz para o serviço. Em ambientes de produção, sempre proteja suas chaves de acesso. Use o Azure Key Vault para gerenciar e rotacionar suas chaves com segurança, proteja sua cadeia de conexão usando o Microsoft Entra ID e autorize o acesso com o Microsoft Entra ID.
Evite distribuir chaves de acesso para outros usuários, fazer hard-coding com elas ou salvá-las em qualquer lugar em texto sem formatação que seja acessível a outras pessoas. Gire suas chaves se você acredita que elas podem ter sido comprometidas.
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.
Se você ainda não tiver uma conta do Azure, crie uma conta gratuita 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
As cadeias de conexão brutas aparecem neste artigo somente para fins de demonstração. Em ambientes de produção, sempre proteja suas chaves de acesso. Use o Azure Key Vault para gerenciar e rotacionar suas chaves com segurança, proteja sua cadeia de conexão usando o Microsoft Entra ID e autorize o acesso com o Microsoft Entra ID.
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.