Introducción a ASP.NET Core SignalR

¿Qué es SignalR?

ASP.NET Core es una biblioteca de código abierto que simplifica la adición de funcionalidad web en tiempo SignalR real a las aplicaciones. La funcionalidad web en tiempo real permite al código del lado servidor insertar contenido en los clientes al instante.

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 procedimiento remoto de servidor a cliente (RPC). Los RPC llaman a funciones de JavaScript en clientes desde código de .NET Core del lado servidor.

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

  • Controla automáticamente la administración de conexiones.
  • 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.
  • Se 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):

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.

Un concentrador es 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 tipos a métodos, lo que habilita 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 anteriores deben admitir el nivel 2 de XHR para proporcionar compatibilidad con el protocolo MessagePack.

Los concentradores llaman al código del lado cliente mediante el envío de 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 le pasa los datos de parámetros deserialados.

Recursos adicionales