Partilhar via


Visão geral do ASP.NET Core SignalR

O que é o SignalR?

ASP.NET Core SignalR é uma biblioteca de código aberto 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 para os clientes instantaneamente.

Bons candidatos a SignalR:

  • Aplicativos que exigem atualizações de alta frequência do servidor. Exemplos são jogos, redes sociais, votação, leilão, mapas e aplicativos de GPS.
  • Painéis e aplicativos de monitoramento. Os exemplos incluem painéis da empresa, atualizações instantâneas de vendas ou alertas de viagem.
  • Aplicações colaborativas. Aplicações de quadro branco e software para reuniões de equipa são exemplos de aplicações colaborativas.
  • Aplicações que requerem notificações. Redes sociais, e-mail, 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. Os RPCs invocam funções em clientes a partir do código .NET do lado do servidor. Existem várias plataformas suportadas, cada uma com seu respetivo SDK de cliente. Por isso, a linguagem de programação que está sendo invocada pela chamada RPC varia.

Aqui estão algumas características do SignalR for ASP.NET Core:

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

A fonte está hospedada em um SignalR repositório no GitHub.

Transports

SignalR suporta as seguintes técnicas para lidar com a comunicação em tempo real (em ordem de alternância cuidadosamente planejada):

  • WebSockets
  • Eventos enviados pelo servidor
  • Consulta Longa

SignalR escolhe automaticamente o melhor método de transporte que está dentro das capacidades 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 um no outro. SignalR Lida com o despacho através dos limites da 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, permitindo assim a vinculaçã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 o JSON. Os navegadores mais antigos devem suportar XHR nível 2 para fornecer suporte ao protocolo MessagePack.

Os hubs chamam código cliente enviando mensagens que contêm o nome e os parâmetros do método 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.

Navegadores que não suportam ECMAScript 6 (ES6)

SignalR visa o padrão ES6. Para navegadores que não suportam ES6, transpile a biblioteca para ES5. Para obter mais informações, consulte Introdução ao ES6 – Transpilando ES6 para ES5 com Traceur e Babel.

Recursos adicionais