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 incorporación de funcionalidades 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 a los clientes al instante.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 desde el servidor con mucha frecuencia.Apps that require high frequency updates from the server. Algunos ejemplos son juegos, redes sociales, aplicaciones de votación, subastas, mapas y GPS.Examples are gaming, social networks, voting, auction, maps, and GPS apps.
  • 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 el 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 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.

SignalRproporciona una API para crear llamadas a procedimiento remoto (RPC)de servidor a cliente. provides an API for creating server-to-client remote procedure calls (RPC). Las RPC llaman a funciones de JavaScript en los clientes desde el código de .NET Core del lado 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 la administración de conexiones automáticamente.Handles connection management automatically.
  • Envía mensajes a todos los clientes conectados simultáneamente.Sends messages to all connected clients simultaneously. Por ejemplo, un salón de chat.For example, a chat room.
  • Envía mensajes a clientes o grupos de clientes específicos.Sends messages to specific clients or groups of clients.
  • Escala para controlar el aumento del 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

SignalRadmite las siguientes técnicas para controlar la comunicación en tiempo real (en orden de reserva correcta): supports the following techniques for handling real-time communication (in order of graceful fallback):

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

ConcentradoresHubs

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

Un concentrador es una canalización de alto nivel que permite a un cliente y un 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. SignalRcontrola el envío automático de los límites de la máquina, lo que permite a los clientes llamar a métodos en el servidor y viceversa. 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. SignalRproporciona dos protocolos de concentrador integrados: un protocolo de texto basado en JSON y un protocolo binario basado en MessagePack. provides two built-in hub protocols: a text protocol based on JSON and a binary protocol based on MessagePack. MessagePack suele crear mensajes más pequeños en comparación con JSON.MessagePack generally creates smaller messages compared to JSON. Los exploradores más antiguos deben admitir el nivel 2 de XHR para proporcionar compatibilidad con el protocolo MessagePack.Older browsers must support XHR level 2 to provide MessagePack protocol support.

Los concentradores llaman 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. Los objetos enviados como parámetros de método se deserializan mediante el protocolo configurado.Objects sent as method parameters are deserialized using the configured protocol. El cliente intenta hacer coincidir el nombre con 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 del parámetro deserializado.When the client finds a match, it calls the method and passes to it the deserialized parameter data.

Recursos adicionalesAdditional resources