Introdução ao SignalR do ASP.NET CoreIntroduction to ASP.NET Core SignalR

O que é o SignalR?What is SignalR?

SignalR do ASP.NET Core é uma biblioteca de software livre que simplifica a adição da funcionalidade da web em tempo real aos 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 para conteúdo de envio por push aos clientes instantaneamente.Real-time web functionality enables server-side code to push content to clients instantly.

Bons candidatos para o 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, de votação, leilão, mapas e aplicativos GPS.Examples are gaming, social networks, voting, auction, maps, and GPS apps.
  • Os painéis e monitoramento de aplicativos.Dashboards and monitoring apps. 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. Quadro de comunicações aplicativos e 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 as 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.

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

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

  • Lida com gerenciamento de conexão automaticamente.Handles connection management automatically.
  • Envia mensagens para 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 específicos ou grupos de clientes.Sends messages to specific clients or groups of clients.
  • É dimensionada para lidar com o aumento de tráfego.Scales to handle increasing traffic.

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

TransportesTransports

O SignalR dá suporte a várias técnicas para manipular as comunicações em tempo real:SignalR supports several techniques for handling real-time communications:

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

HubsHubs

Usa o SignalR hubs para comunicação 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 servidor chamar métodos em 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 chamar 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, 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 interno: um protocolo de texto com base 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. MessagePack geralmente cria mensagens menores em comparação comparadas JSON.MessagePack generally creates smaller messages compared to JSON. Devem dar suporte a navegadores mais antigos nível XHR 2 para fornecer suporte de protocolo MessagePack.Older browsers must support XHR level 2 to provide MessagePack protocol support.

Os hubs de chamar o código do lado do cliente enviando mensagens que contêm o nome e 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 a ele os dados de parâmetro desserializado.When the client finds a match, it calls the method and passes to it the deserialized parameter data.

Recursos adicionaisAdditional resources