Introdução ao ASP.NET Core SignalRIntroduction to ASP.NET Core SignalR

O que é SignalR?What is SignalR?

ASP.NET Core SignalR é uma biblioteca de software livre que simplifica a adição da funcionalidade da Web em tempo real a aplicativos.ASP.NET Core SignalR is an open-source library that simplifies adding real-time web functionality to apps. A funcionalidade da Web em tempo real permite que o código do lado do servidor envie conteúdo aos clientes instantaneamente.Real-time web functionality enables server-side code to push content to clients instantly.

Bons candidatos para SignalR:Good candidates for SignalR:

  • Aplicativos que exigem atualizações de alta frequência do servidor.Apps that require high frequency updates from the server. Exemplos são jogos, redes sociais, votação, leilão, mapas e aplicativos de GPS.Examples are gaming, social networks, voting, auction, maps, and GPS apps.
  • Painéis e aplicativos de monitoramento.Dashboards and monitoring apps. Os exemplos incluem painéis da empresa, atualizações de vendas instantâneas ou alertas de viagem.Examples include company dashboards, instant sales updates, or travel alerts.
  • Aplicativos de colaboração.Collaborative apps. Os aplicativos de quadro de comunicações e o software de reunião de equipe são exemplos de aplicativos de colaboração.Whiteboard apps and team meeting software are examples of collaborative apps.
  • Aplicativos que exigem notificações.Apps that require notifications. Redes sociais, email, bate-papo, jogos, alertas de viagem e muitos outros aplicativos usam notificações.Social networks, email, chat, games, travel alerts, and many other apps use notifications.

SignalR fornece uma API para criar chamadas de procedimento remoto (RPC)de servidor para cliente. provides an API for creating server-to-client remote procedure calls (RPC). As RPCs chamam funções JavaScript em clientes do código .NET Core do lado do servidor.The RPCs call JavaScript functions on clients from server-side .NET Core code.

Aqui estão alguns recursos de SignalR para ASP.NET Core:Here are some features of SignalR for ASP.NET Core:

  • Lida com o gerenciamento de conexão automaticamente.Handles connection management automatically.
  • Envia mensagens a todos os clientes conectados simultaneamente.Sends messages to all connected clients simultaneously. Por exemplo, uma sala de bate-papo.For example, a chat room.
  • Envia mensagens para clientes ou grupos de clientes específicos.Sends messages to specific clients or groups of clients.
  • Dimensiona para lidar com o aumento do tráfego.Scales to handle increasing traffic.

A origem é hospedada em um repositórioSignalR no GitHub.The source is hosted in a SignalR repository on GitHub.

TransportesTransports

o SignalR dá suporte às seguintes técnicas para lidar com a comunicação em tempo real (em ordem de fallback normal):SignalR supports the following techniques for handling real-time communication (in order of graceful fallback):

SignalR escolhe automaticamente o melhor método de transporte que está dentro dos recursos do servidor e do cliente. automatically chooses the best transport method that is within the capabilities of the server and client.

HubsHubs

o SignalR usa hubs para se comunicar entre clientes e servidores.SignalR uses hubs to communicate between clients and servers.

Um hub é um pipeline de alto nível que permite que um cliente e um servidor chamem métodos entre si.A hub is a high-level pipeline that allows a client and server to call methods on each other. o SignalR manipula a expedição entre limites de máquina automaticamente, permitindo que os clientes chamem métodos no servidor e vice-versa.SignalR handles the dispatching across machine boundaries automatically, allowing clients to call methods on the server and vice versa. Você pode passar parâmetros fortemente tipados para métodos, o que habilita a associação de modelo.You can pass strongly-typed parameters to methods, which enables model binding. o SignalR fornece dois protocolos de Hub internos: um protocolo de texto baseado em JSON e um protocolo binário com base em MessagePack.SignalR provides two built-in hub protocols: a text protocol based on JSON and a binary protocol based on MessagePack. O MessagePack geralmente cria mensagens menores em comparação com o JSON.MessagePack generally creates smaller messages compared to JSON. Os navegadores mais antigos devem dar suporte ao nível 2 do XHR para fornecer suporte ao protocolo MessagePack.Older browsers must support XHR level 2 to provide MessagePack protocol support.

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.Hubs call client-side code by sending messages that contain the name and parameters of the client-side method. Os objetos enviados como parâmetros de método são desserializados usando o protocolo configurado.Objects sent as method parameters are deserialized using the configured protocol. O cliente tenta corresponder o nome a um método no código do lado do cliente.The client tries to match the name to a method in the client-side code. Quando o cliente encontra uma correspondência, ele chama o método e passa para ele os dados de parâmetro desserializados.When the client finds a match, it calls the method and passes to it the deserialized parameter data.

Recursos adicionaisAdditional resources