Visão geral do ASP.NET Core SignalR

O que é o SignalR?

SignalR ASP.NET Core é uma biblioteca de software livre que simplifica a adição de funcionalidade da Web em tempo real aos aplicativos. A funcionalidade da Web em tempo real permite que o código do lado do servidor envie conteúdo por push 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 (chamadas de 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, 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 de SignalR ASP.NET Core:

  • Manipula o gerenciamento de conexões automaticamente.
  • Envia mensagens para todos os clientes conectados simultaneamente. Por exemplo, uma sala de chat.
  • 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 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 do computador automaticamente, permitindo que os clientes chamem métodos no servidor e vice-versa. Você pode passar parâmetros fortemente tipado para métodos, o que permite a associação de modelo. SignalR fornece dois protocolos de hub internos: um protocolo de texto baseado em JSON e um protocolo binário baseado em MessagePack. O MessagePack geralmente cria mensagens menores em comparação com ON JS. 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. 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