Introducción a ASP.NET Core SignalR

¿Qué es SignalR?

SignalR ASP.NET Core es una biblioteca de código abierto que simplifica la adición de funcionalidad web en tiempo real a las aplicaciones. La funcionalidad web en tiempo real permite que el código del lado servidor inserte contenido en los clientes de forma instantánea.

Buenos candidatos para SignalR:

  • Aplicaciones que requieren actualizaciones desde el servidor con mucha frecuencia. Algunos ejemplos son juegos, redes sociales, aplicaciones de votación, subastas, mapas y GPS.
  • Paneles y aplicaciones de supervisión. Los ejemplos incluyen paneles empresariales, actualizaciones de venta instantáneas o alertas de viaje.
  • Aplicaciones de colaboración. Las aplicaciones de pizarra y el software de reuniones de equipo son ejemplos de aplicaciones de colaboración.
  • Aplicaciones que requieren notificaciones. Redes sociales, correo electrónico, chat, juegos, alertas de viaje y muchas otras aplicaciones utilizan notificaciones.

SignalRproporciona una API para crear llamadas a procedimientos remotos de servidor a cliente (RPC). Los RPC invocan funciones en clientes desde código .NET Core del lado servidor. Hay varias plataformas compatibles, cada una con su SDK de cliente respectivo. Por este motivo, el lenguaje de programación que la llamada RPC invoca varía.

Estas son algunas características de SignalR para ASP.NET Core:

  • Controla la administración de conexiones automáticamente.
  • Envía mensajes a todos los clientes conectados simultáneamente. Por ejemplo, un salón de chat.
  • Envía mensajes a clientes o grupos de clientes específicos.
  • Escala para controlar el aumento del tráfico.

El origen se hospeda en un SignalR repositorio en GitHub.

Transportes

SignalR admite las técnicas siguientes para controlar la comunicación en tiempo real (en orden de reserva correcta):

  • WebSockets
  • Eventos enviados por el servidor
  • Sondeo largo

SignalR elige automáticamente el mejor método de transporte que se encuentra dentro de las funcionalidades del servidor y el cliente.

Concentradores

SignalR usa concentradores para comunicarse entre clientes y servidores.

Con "centro" nos referimos a una canalización de alto nivel que permite que un cliente y un servidor llamen a métodos entre sí. SignalR controla el envío a través de los límites de la máquina automáticamente, lo que permite a los clientes llamar a métodos en el servidor y viceversa. Puede pasar parámetros fuertemente tipados a métodos, lo que permite el enlace de modelos. SignalR proporciona dos protocolos de concentrador integrados: un protocolo de texto basado en JSON y un protocolo binario basado en MessagePack. MessagePack generalmente crea mensajes más pequeños en comparación con JSON. Los exploradores más antiguos deben admitir el nivel 2 de XHR para proporcionar compatibilidad con el protocolo MessagePack.

Los concentradores llaman al código del lado cliente enviando mensajes que contienen el nombre y los parámetros del método del lado cliente. Los objetos enviados como parámetros de método se deserializan mediante el protocolo configurado. El cliente intenta hacer coincidir el nombre con un método en el código del lado cliente. Cuando el cliente encuentra una coincidencia, llama al método y lo pasa a los datos del parámetro deserializado.

Recursos adicionales