Visão geral do ASP.NET Core SignalR

O que é SignalR?

ASP.NET Core SignalR é uma biblioteca de software livre 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 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 colaborativos. Aplicativos de quadro branco e software para reuniões 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. Os RPCs invocam funções em clientes do lado do código .NET do servidor. Há várias plataformas compatíveis, 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 para ASP.NET Core:

  • Trata do 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.
  • Possui escalabilidade para lidar com o aumento do tráfego, com opções como o Serviço Azure e o backplane Redis.
  • Dá suporte à otimização e à compilação antecipada (AOT) nativa para cenários suportados.
  • Dá suporte ao tratamento de tipo polimórfico em métodos de hub.
  • Dá suporte ao rastreamento distribuído com ActivitySource para servidor hub e cliente .NET.
  • Protocolo de Hub SignalR

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

Transports

SignalR oferece suporte às seguintes técnicas para lidar com a comunicação em tempo real (em ordem de retrocesso gracioso):

  • WebSockets
  • Eventos enviados pelo servidor
  • Sondagem longa

SignalR escolhe automaticamente o melhor método de transporte que está dentro dos recursos do servidor e do cliente. WebSockets é o transporte preferencial porque geralmente fornece o melhor desempenho.

Hubs

SignalR usa hubs para se comunicar entre clientes e servidores.

Um hub é um pipeline de alto nível que um cliente e um servidor usam para chamar métodos um no outro. SignalR gerencia automaticamente a distribuição entre os limites das máquinas, para que os clientes possam chamar métodos no servidor e vice-versa. Você pode passar parâmetros fortemente tipados para métodos, o que permite a vinculação de modelos. SignalR dá suporte a dois protocolos de hub internos: um protocolo de texto baseado em JSON (padrão) e um protocolo binário baseado em MessagePack. O MessagePack geralmente cria mensagens menores em comparação com o JSON. Para obter mais informações, consulte Uso do Protocolo de Hub MessagePack em SignalR para ASP.NET Core.

Os hubs chamam o código cliente enviando mensagens que contêm o nome e os parâmetros do método cliente. O protocolo configurado desserializa objetos enviados como parâmetros de método. O cliente tenta encontrar uma correspondência entre o nome e um método no código cliente. Quando o cliente encontra uma correspondência, ele chama o método e passa os dados de parâmetro desserializados.

Recursos adicionais

O que é SignalR?

ASP.NET Core SignalR é uma biblioteca de software livre 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 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 colaborativos. Aplicativos de quadro branco 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. Os RPCs invocam funções em clientes a partir do código .NET no lado do servidor. Há várias plataformas compatíveis, 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 para ASP.NET Core:

  • Trata do 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.
  • Dimensionamento para lidar com o aumento do tráfego, com opções como o serviço do Azure e o Redis backplane.
  • Dá suporte à redução e à compilação AOT (antecipada) nativa para cenários com suporte.
  • Dá suporte ao tratamento de tipo polimórfico em métodos de hub.
  • Dá suporte ao rastreamento distribuído com ActivitySource para servidor hub SignalR e cliente .NET.
  • Protocolo de Hub SignalR

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

Transports

SignalR oferece suporte às seguintes técnicas para lidar com a comunicação em tempo real (em ordem de degradação suave):

  • WebSockets
  • Eventos enviados pelo servidor
  • Sondagem longa

SignalR escolhe automaticamente o melhor método de transporte que está dentro dos recursos do servidor e do cliente. WebSockets é o transporte preferencial porque geralmente fornece o melhor desempenho.

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 executem métodos entre si. SignalR lida automaticamente com o despacho entre limites de máquina, permitindo que os clientes chamem métodos no servidor e vice-versa. Você pode passar parâmetros fortemente tipados para os métodos, o que permite o model binding. SignalR dá suporte a dois protocolos de hub internos: um protocolo de texto baseado em JSON (padrão) e um protocolo binário baseado em MessagePack. O MessagePack geralmente cria mensagens menores em comparação com o JSON. Para obter mais informações, consulte Uso do Protocolo Hub MessagePack em SignalR para ASP.NET Core.

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 programa cliente encontra uma correspondência, ele chama o método e passa para ele os dados deserializados dos parâmetros.

Recursos adicionais

O que é SignalR?

ASP.NET Core SignalR é uma biblioteca de software livre 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 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 colaborativos. Aplicativos de quadro branco e software para reuniões 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. Os RPCs invocam funções em clientes a partir do código .NET no lado do servidor. Há várias plataformas compatíveis, 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 para ASP.NET Core:

  • Trata do 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.
  • Escala para lidar com o aumento do tráfego.
  • Protocolo de Hub SignalR

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

Transports

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

  • WebSockets
  • Eventos 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 um no outro. SignalR realiza automaticamente o encaminhamento entre os limites das máquinas, permitindo que os clientes chamem métodos no servidor e vice-versa. Você pode passar parâmetros com tipagem forte para os métodos, o que permite a vinculação de modelo. SignalR fornece dois protocolos de hub integrados: 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 dar suporte ao XHR nível 2 para oferecer 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 associar o nome a um método no código cliente. Quando o cliente encontra uma correspondência, ele chama o método e passa para ele os dados de parâmetro desserializados.

Navegadores incompatíveis com ECMAScript 6 (ES6)

SignalR tem como destino o ES6. Para navegadores que não são compatíveis com o ES6, transpile a biblioteca para o ES5. Para obter mais informações, consulte Introdução ao ES6 - Transposição de ES6 para ES5 com Traceur e Babel.

Recursos adicionais