Introdução ao ASP.NET Core SignalR

O que é o SignalR?

SignalRASP.NET Core é uma biblioteca de código-fonte aberto que simplifica a adição de funcionalidades da Web em tempo real aos aplicativos. A funcionalidade da Web em tempo real permite que o código do lado do servidor e push de conteúdo para os clientes instantaneamente.

Bons candidatos para SignalR :

  • Aplicativos que exigem atualizações frequentes do servidor. Por exemplo, jogos, redes sociais, votação, leilão, mapas e aplicativos de GPS.
  • Painéis e aplicativos de monitoramento. Por exemplo, painéis de empresa, atualizações de vendas instantâneas ou alertas de viagem.
  • Aplicativos de colaboração. Aplicativos de quadro de comunicação e software de reunião de equipe são exemplos de aplicativos de colaboração.
  • Aplicativos que exigem notificações. Redes sociais, email, chat, jogos, alertas de viagem e muitos outros aplicativos usam notificações.

SignalR fornece uma API para criar RPC (chamadasde procedimento remoto de servidor para cliente). Os RPCs invocam funções em clientes do código .NET Core do lado do servidor. Há várias plataformas com suporte, cadauma com seu respectivo SDK de cliente. Por isso, a linguagem de programação que está sendo invocada pela chamada RPC varia.

Aqui estão alguns recursos do SignalR para ASP.NET Core:

  • Lida com o gerenciamento de conexões automaticamente.
  • Envia mensagens a todos os clientes conectados simultaneamente. Por exemplo, uma sala de chat.
  • Envia mensagens para clientes ou grupos específicos de clientes.
  • Dimensiona para lidar com o aumento do tráfego.

A origem é hospedada em um SignalR repositório no GitHub.

Transportes

SignalR dá suporte às seguintes técnicas para lidar com a comunicação em tempo real (em ordem de fallback normalmente):

SignalR escolhe automaticamente o melhor método de transporte que está dentro dos recursos do servidor e do cliente.

Hubs

SignalR usa hubs para se comunicar entre clientes e servidores.

Um hub é um pipeline de alto nível que permite que um cliente e um servidor chamem métodos uns nos outros. SignalR lida com a expedição entre limites de computador automaticamente, permitindo que os clientes chamem métodos no servidor e vice-versa. Você pode passar parâmetros fortemente digitados para métodos, o que permite model binding. SignalRfornece dois protocolos de hub integrados: um protocolo de texto baseado em JSON e um protocolo binário baseado em MessagePack. MessagePack geralmente cria mensagens menores em comparação com JSON. Navegadores mais antigos devem dar suporte ao nível 2 do XHR para fornecer suporte ao protocolo MessagePack.

Os hubs chamam o código do lado do cliente enviando mensagens que contêm o nome e os parâmetros do método do lado do cliente. Os objetos enviados como parâmetros de método são desseerlizados usando o protocolo configurado. O cliente tenta corresponder o nome a um método no código do lado do cliente. Quando o cliente encontra uma combinação, ele chama o método e passa para ele os dados de parâmetro desserializados.

Recursos adicionais