Início Rápido: Criar uma sala de chat com o ASP.NET e o Serviço do SignalR
O Serviço do Azure SignalR se baseia no SignalR para ASP.NET Core 2.1, que não é 100% compatível com o ASP.NET SignalR. O Serviço do Azure SignalR reimplementou o protocolo de dados ASP.NET SignalR com base nas tecnologias mais recentes do ASP.NET Core. Quando você usa o Serviço do Azure SignalR para ASP.NET SignalR, alguns recursos ASP.NET SignalR não têm mais suporte, por exemplo, o Azure SignalR não reproduz mensagens quando o cliente se reconecta. Além disso, não há suporte para o transporte do Forever Frame e JSONP. Algumas alterações de código e a versão correta das bibliotecas dependentes são necessárias para fazer com que o aplicativo ASP.NET SignalR funcione com o Serviço do SignalR.
Veja o documento sobre diferenças de versão para obter uma lista completa de comparação de recursos entre o ASP.NET SignalR e o ASP.NET Core SignalR.
Neste início rápido, você aprenderá a começar a usar o ASP.NET e o Serviço do Azure SignalR para um aplicativo de Sala de Chat semelhante.
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
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 o seu aplicativo acesse o serviço Azure Web PubSub. 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, proteger sua cadeia de conexão usando o Microsoft Entra ID e autorizar 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
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Entrar no Azure
Entre no portal do Azure com sua 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ê precisa dessa cadeia de conexão para configurar seu aplicativo posteriormente neste tutorial.
Não há suporte para o modo sem servidor para aplicativos do ASP.NET SignalR. Sempre use a opção Padrão ou Clássico para a instância de Serviço do Azure SignalR.
Crie também recursos do Azure usados neste início rápido com Criar um script do Serviço do SignalR.
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Clonar o aplicativo de exemplo
Durante a implantação do serviço, vamos trabalhar com o código. Clone o aplicativo de exemplo do GitHub, defina a cadeia de conexão do SignalR Service e 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.
Configurar e executar o aplicativo Web de sala de chat
Inicie o Visual Studio e abra a solução na pasta aspnet-samples/ChatRoom/ do repositório clonado.
No navegador em que o portal do Azure é aberto, encontre e selecione a instância criada.
Selecione Chaves para exibir as cadeias de conexão para a instância do SignalR Service.
Selecione e copie a cadeia de conexão primária.
Agora, defina a cadeia de conexão no arquivo web.config.
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, proteger sua cadeia de conexão usando o Microsoft Entra ID e autorizar o acesso com o Microsoft Entra ID.
<configuration> <connectionStrings> <add name="Azure:SignalR:ConnectionString" connectionString="<Replace By Your Connection String>"/> </connectionStrings> ... </configuration>
Em Startup.cs, em vez de chamar
MapSignalR()
, você precisará chamarMapAzureSignalR({YourApplicationName})
e passar a cadeia de conexão para fazer com que o aplicativo se conecte ao serviço, em vez de realizar a hospedagem do SignalR por si só. Substitua{YourApplicationName}
pelo nome de seu aplicativo. Esse nome é um nome exclusivo para diferenciar esse aplicativo dos outros aplicativos. Você pode usarthis.GetType().FullName
como o valor.public void Configuration(IAppBuilder app) { // Any connection or hub wire up and configuration should go here app.MapAzureSignalR(this.GetType().FullName); }
Você também precisará referenciar o SDK do serviço antes de usar essas APIs. Abra as Ferramentas | Gerenciador de Pacotes NuGet | Console do Gerenciador de Pacotes e execute o comando:
Install-Package Microsoft.Azure.SignalR.AspNet
Além dessas alterações, todo o resto permanecerá igual, e você ainda poderá usar a interface de hub com a qual já está familiarizado para escrever a lógica de negócios.
Observação
Na implementação, um ponto de extremidade
/signalr/negotiate
é exposto para negociação pelo SDK do Serviço do Azure SignalR. Ele retornará uma resposta de negociação especial quando os clientes tentarem se conectar e redirecionará os clientes ao ponto de extremidade de serviço definido na cadeia de conexão.Pressione F5 para executar o projeto no modo de depuração. Você poderá ver que o aplicativo é executado localmente. Em vez de hospedar um runtime do SignalR pelo próprio aplicativo, ele agora se conecta ao Serviço do Azure SignalR.
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.
Importante
A exclusão de um grupo de recursos é irreversível, e o grupo de recursos e todos os recursos contidos nele são excluídos permanentemente. Não exclua acidentalmente o grupo de recursos ou os recursos incorretos. Se tiver criado os recursos para hospedar este exemplo dentro de um grupo de recursos existente que contém recursos que você quer manter, exclua cada recurso individualmente de suas respectivas folhas, em vez de excluir o grupo de recursos.
Entre no portal do Azure e selecione Grupos de recursos.
Na caixa de texto Filtrar por nome... , digite o nome do seu grupo de recursos. As instruções deste início rápido usaram um grupo de recursos chamado SignalRTestResources. Em seu grupo de recursos, na lista de resultados, clique em ... , depois em Excluir grupo de recursos.
Após alguns instantes, o grupo de recursos, e todos os recursos contidos nele, serão excluídos.
Está com problemas? Experimente o guia de solução de problemas ou fale conosco.
Próximas etapas
Neste início rápido, você criou um recurso do Serviço do Azure SignalR e o usou com um aplicativo Web ASP.NET. Em seguida, saiba como desenvolver aplicativos em tempo real usando o Serviço do Azure SignalR com o ASP.NET Core.