Introducción a ASP.NET Core SignalRIntroduction to ASP.NET Core SignalR

¿Qué es SignalR?What is SignalR?

ASP.NET Core SignalR es una biblioteca de código abierto que simplifica la adición de la funcionalidad web en tiempo real a las aplicaciones.ASP.NET Core SignalR is an open-source library that simplifies adding real-time web functionality to apps. La funcionalidad web en tiempo real permite que el código del lado servidor inserte contenido en los clientes al momento.Real-time web functionality enables server-side code to push content to clients instantly.

Buenos candidatos para SignalR:Good candidates for SignalR:

  • Aplicaciones que requieren actualizaciones de alta frecuencia desde el servidor.Apps that require high frequency updates from the server. Algunos ejemplos son juegos, redes sociales, votación, subastas, mapas y aplicaciones GPS.Examples are gaming, social networks, voting, auction, maps, and GPS apps.
  • Los paneles y aplicaciones de supervisión.Dashboards and monitoring apps. Los ejemplos incluyen paneles empresariales, actualizaciones de venta instantáneas o alertas de viaje.Examples include company dashboards, instant sales updates, or travel alerts.
  • Aplicaciones de colaboración.Collaborative apps. Las aplicaciones de pizarra y software de reuniones de equipo son ejemplos de aplicaciones de colaboración.Whiteboard apps and team meeting software are examples of collaborative apps.
  • Aplicaciones que requieren las notificaciones.Apps that require notifications. Redes sociales, correo electrónico, chat, juegos, alertas de viaje y muchas otras aplicaciones utilizan notificaciones.Social networks, email, chat, games, travel alerts, and many other apps use notifications.

SignalR proporciona una API para crear el servidor a cliente llamadas a procedimiento remoto (RPC).SignalR provides an API for creating server-to-client remote procedure calls (RPC). Las RPC llamar a funciones de JavaScript en los clientes desde el código de .NET Core en el servidor.The RPCs call JavaScript functions on clients from server-side .NET Core code.

Estas son algunas características de SignalR para ASP.NET Core:Here are some features of SignalR for ASP.NET Core:

  • Controla automáticamente la administración de conexiones.Handles connection management automatically.
  • Envía mensajes a todos los clientes conectados al mismo tiempo.Sends messages to all connected clients simultaneously. Por ejemplo, un salón de chat.For example, a chat room.
  • Envía mensajes a clientes específicos o grupos de clientes.Sends messages to specific clients or groups of clients.
  • Se puede ampliar para controlar el creciente tráfico.Scales to handle increasing traffic.

El origen se hospeda en un SignalR repositorio de GitHub.The source is hosted in a SignalR repository on GitHub.

TransportesTransports

SignalR admite varias técnicas para controlar las comunicaciones en tiempo real:SignalR supports several techniques for handling real-time communications:

SignalR elige automáticamente el mejor método de transporte que se encuentra dentro de las capacidades del servidor y cliente.SignalR automatically chooses the best transport method that is within the capabilities of the server and client.

ConcentradoresHubs

SignalR usa hubs para la comunicación entre clientes y servidores.SignalR uses hubs to communicate between clients and servers.

Un concentrador es una canalización de alto nivel que permite que un cliente y servidor llamar a métodos entre sí.A hub is a high-level pipeline that allows a client and server to call methods on each other. SignalR controla el envío a través de los límites del equipo automáticamente, permitir que los clientes llamar a métodos en el servidor y viceversa.SignalR handles the dispatching across machine boundaries automatically, allowing clients to call methods on the server and vice versa. Puede pasar parámetros fuertemente tipados a métodos, lo que permite el enlace de modelos.You can pass strongly-typed parameters to methods, which enables model binding. SignalR proporciona dos protocolos de concentrador integrada: un protocolo de texto basado en JSON y un protocolo binario según MessagePack.SignalR provides two built-in hub protocols: a text protocol based on JSON and a binary protocol based on MessagePack. MessagePack generalmente crea mensajes más pequeños en comparación con JSON.MessagePack generally creates smaller messages compared to JSON. Deben ser compatible con los exploradores más antiguos nivel XHR 2 para proporcionar compatibilidad con el protocolo MessagePack.Older browsers must support XHR level 2 to provide MessagePack protocol support.

Centros de llamar a código de cliente mediante el envío de mensajes que contienen el nombre y los parámetros del método del lado cliente.Hubs call client-side code by sending messages that contain the name and parameters of the client-side method. Se deserializan los objetos que se envía como parámetros de método mediante el protocolo configurado.Objects sent as method parameters are deserialized using the configured protocol. El cliente intenta hacer coincidir el nombre a un método en el código del lado cliente.The client tries to match the name to a method in the client-side code. Cuando el cliente encuentra una coincidencia, llama al método y le pasa los datos deserializados.When the client finds a match, it calls the method and passes to it the deserialized parameter data.

Recursos adicionalesAdditional resources