Visão geral do ASP.NET Core SignalR

O que é o SignalR?

ASP.NET Core SignalR é uma biblioteca de software livre que simplifica a adição de funcionalidades da web em tempo real a aplicativos. A funcionalidade da Web em tempo real permite que o código do lado do servidor envie conteúdo aos 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 chamadas de procedimento remoto (RPC)de servidor para cliente. As RPCs invocam funções em clientes do código .NET Core do lado do servidor. Há várias plataformas com suporte, cada uma 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ão automaticamente.
  • Envia mensagens a todos os clientes conectados simultaneamente. Por exemplo, uma sala de bate-papo.
  • Envia mensagens para clientes ou grupos de clientes específicos.
  • 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 normal):

  • WebSockets
  • Eventos de enviados pelo servidor
  • Sondagem longa

SignalR o 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 manipula a expedição entre limites de máquina automaticamente, permitindo que os clientes chamem métodos no servidor e vice-versa. Você pode passar parâmetros fortemente tipados para métodos, o que habilita a associação de modelo. SignalR fornece dois protocolos de Hub internos: um protocolo de texto baseado em JSON e um protocolo binário com base em MessagePack. O MessagePack geralmente cria mensagens menores em comparação com o JSON. Os 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 desserializados 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 correspondência, ele chama o método e passa para ele os dados de parâmetro desserializados.

Recursos adicionais