Partilhar via


Guia de início rápido: criar uma sala de chat com o Serviço ASP.NET e SignalR

O Serviço Azure SignalR é baseado no SignalR para ASP.NET Core 2.1, que não é 100% compatível com ASP.NET SignalR. O Serviço Azure SignalR reimplementou ASP.NET protocolo de dados SignalR com base nas mais recentes tecnologias ASP.NET Core. Quando você usa o Serviço SignalR do Azure para ASP.NET SignalR, alguns recursos ASP.NET do SignalR não são mais suportados, por exemplo, o Azure SignalR não reproduz mensagens quando o cliente se reconecta. Além disso, o transporte Forever Frame e o JSONP não são suportados. Algumas alterações de código e a versão adequada das bibliotecas dependentes são necessárias para fazer com que ASP.NET aplicativo SignalR funcione com o Serviço SignalR.

Consulte o documento de diferenças de versão para obter uma lista completa de comparação de recursos entre ASP.NET SignalR e ASP.NET Core SignalR.

Neste guia de início rápido, você aprenderá como começar a usar o ASP.NET e o Serviço Azure SignalR para um aplicativo de Sala de Chat semelhante.

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

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

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.

  1. Inicie sessão no portal do Azure.
  2. No canto superior esquerdo da página, selecione + Criar um recurso.
  3. 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.
  4. Na página Serviço SignalR, selecione Criar.
  5. 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.

  1. Selecione o botão Rever + criar na parte inferior do separador Noções básicas .
  2. No separador Rever + criar, reveja os valores e, em seguida, selecione Criar. Leva alguns momentos para que a implantação seja concluída.
  3. Quando a implantação estiver concluída, selecione o botão Ir para recurso.
  4. Na página de recursos do SignalR, selecione Teclas no menu à esquerda, em Configurações.
  5. 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.

O modo sem servidor não é suportado para aplicativos ASP.NET SignalR. Sempre use Padrão ou Clássico para a instância do Serviço Azure SignalR.

Você também pode criar recursos do Azure usados neste início rápido com o script Criar um Serviço SignalR.

Tem problemas? Experimente o guia de resolução de problemas ou informe-nos.

Clonar a aplicação de exemplo

Enquanto o serviço está a ser implementado, vamos passar para trabalhar com código. Clone a aplicação de exemplo do GitHub, defina a cadeia de ligação do Serviço SignalR e execute a aplicação localmente.

  1. Abra uma janela de terminal do git. Alterar para uma pasta em que quer clonar o projeto de exemplo.

  2. 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.

Configurar e executar o aplicativo Web Sala de Chat

  1. Inicie o Visual Studio e abra a solução na pasta aspnet-samples/ChatRoom/ do repositório clonado.

  2. No navegador onde o portal do Azure é aberto, localize e selecione a instância que você criou.

  3. Selecione Chaves para ver as cadeias de ligação para a instância do Serviço SignalR.

  4. Selecione e copie a cadeia de ligação principal.

  5. Agora defina a cadeia de conexão no arquivo web.config .

    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.

    <configuration>
    <connectionStrings>
        <add name="Azure:SignalR:ConnectionString" connectionString="<Replace By Your Connection String>"/>
    </connectionStrings>
    ...
    </configuration>
    
  6. Além Startup.cs, em vez de chamar MapSignalR(), você precisa chamar MapAzureSignalR({YourApplicationName}) e passar a cadeia de conexão para fazer com que o aplicativo se conecte ao serviço em vez de hospedar o SignalR por si só. Substitua {YourApplicationName} pelo nome do seu aplicativo. Este nome é um nome exclusivo para distinguir esta aplicação das suas outras aplicações. Você pode usar this.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 precisa fazer referência ao 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 permanece o mesmo, você ainda pode usar a interface do hub com a qual já está familiarizado para escrever a lógica de negócios.

    Nota

    Na implementação, um ponto de extremidade /signalr/negotiate é exposto para negociação pelo SDK do Serviço Azure SignalR. Ele retornará uma resposta de negociação especial quando os clientes tentarem se conectar e redirecionar os clientes para o ponto de extremidade de serviço definido na cadeia de conexão.

  7. Pressione F5 para executar o projeto no modo de depuração. Você pode ver que o aplicativo é executado localmente. Em vez de hospedar um tempo de execução do SignalR pelo próprio aplicativo, ele agora se conecta ao Serviço SignalR do Azure.

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:

  1. 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.

  2. Na janela que abre, selecione o grupo de recursos e clique em Eliminar grupo de recursos.

  3. Na nova janela, escreva o nome do grupo de recursos a eliminar e, em seguida, clique em Eliminar.

Importante

A eliminação de um grupo de recursos é irreversível e o grupo de recursos e todos os recursos contidos no mesmo serão permanentemente eliminados. Confirme que não elimina acidentalmente o grupo de recursos ou recursos errados. Se tiver criado os recursos para alojar este exemplo num grupo de recursos existente que contém os recursos que pretende manter, poderá eliminar cada recurso individualmente nos respetivos painéis em vez de eliminar o grupo de recursos.

Inicie sessão no Portal do Azure e selecione Grupos de recursos.

Na caixa de texto Filtrar por nome..., escreva o nome do grupo de recursos. As instruções neste início rápido utilizaram um grupo de recursos denominado SignalRTestResources. No seu grupo de recursos na lista de resultados, clique em ... e em Eliminar grupo de recursos.

Delete

Após alguns instantes, o grupo de recursos e todos os recursos contidos no mesmo são eliminados.

Tem problemas? Experimente o guia de resolução de problemas ou informe-nos.

Próximos passos

Neste início rápido, você criou um novo recurso do Serviço SignalR do Azure e o usou com um aplicativo Web ASP.NET. Em seguida, saiba como desenvolver aplicativos em tempo real usando o Serviço Azure SignalR com o ASP.NET Core.