SignalR

Aplicaciones web en tiempo real y SignalR

By M. Leal, Post

Internet ha sufrido una drástica evolución desde sus inicios. Las primeras webs funcionaban básicamente como repositorios de información, donde los navegadores web lanzaban peticiones al servidor y éste les contestaba con los resultados de dicha petición. Fruto de esta concepción inicial tenemos, por ejemplo, el protocolo HTTP, donde se pueden distinguir los métodos GET, POST, UPDATE y DELETE (entre otros), y en los que la comunicación siempre se inicia desde el cliente.

Sin embargo, a día de hoy, este concepto ha quedado desfasado: la web tiende a ser un espacio interactivo en el cual la comunicación cliente-servidor es bidireccional y la información se mueve en tiempo real.

Entonces, ¿de qué herramientas disponemos los desarrolladores para atender estas nuevas necesidades?

Web Sockets

Actualmente para mantener un canal de comunicaciones bidireccional entre cliente y servidor podemos hacer uso de los Web Sockets. Este tipo de socket mantiene una conexión TCP entre ambos extremos, permitiendo el intercambio simultáneo de información y en ambas direcciones (full-dúplex). De esta forma, tenemos identificada una conexión entre cliente y servidor que nos permitirá enviar información también desde el servidor hacia el cliente en tiempo real. Las últimas versiones de los navegadores más comunes (Chrome, Firefox, IE, Edge, Safari...) permiten usar esta tecnología.

¿Son mi solución?

Trabajando con Web Sockets podemos adaptar la funcionalidad para un óptimo rendimiento de nuestra aplicación web. Sin embargo, para trabajar con ellos debemos manejar detalles de bajo nivel, algo dificultoso para muchos programadores e incluso innecesario para la mayoría de las aplicaciones. Aquí es donde entra en juego SignalR.

SignalR

SignalR es una librería para desarrolladores ASP.NET que permite añadir funcionalidades de tiempo real a nuestras aplicaciones web, permitiendo el intercambio de información en tiempo real entre cliente y servidor en ambos sentidos. Para ello, puede hacer uso de distintas tecnologías (Web Sockets, Long Polling…). Es decir, no importa si la versión de nuestro navegador no implementa Web Sockets: SignalR se encarga de usar la tecnología adecuada en cada conexión.

¿Qué podemos desarrollar con SignalR?

El ejemplo más común de comunicación bidireccional en tiempo real es el de un chat. Sin embargo, con SignalR podemos desarrollar aplicaciones mucho más avanzadas. Se podría, por ejemplo, manejar aplicaciones de noticias en tiempo real, muy útil en el ámbito de las noticias deportivas, entre otras, o, en eventos donde el usuario quiere estar informado de todo lo que sucede al instante. Pero SignalR también es útil en aplicaciones que demandan envíos de información a una alta frecuencia, como, por ejemplo, en juegos online en tiempo real. Un ejemplo de ello lo podemos encontrar en ShootR.

Conclusión

En caso de que trabajemos con una aplicación web que deba mover una gran cantidad de datos en tiempo real y donde el más mínimo retraso en la actualización de los datos con los que trabajamos sea un factor crítico para la experiencia del usuario, puede ser interesante considerar el uso de la programación con Web Sockets.

Sin embargo, SignalR nos ofrece la posibilidad de gestionar una aplicación web con necesidades en tiempo real sin tener que preocuparnos de detalles de bajo nivel y adaptándose automáticamente a las tecnologías que soporten los navegadores implicados, ahorrando horas de programación y quebraderos de cabeza a muchos programadores de ASP.NET.

En próximos artículos explicaremos cómo implementar SignalR en una aplicación ASP.NET MVC 5 y qué configuraciones podemos seguir para mantener un rendimiento óptimo según nuestro caso.

 

 

Comparte este artículo

 
Compartir10
 
Este sitio web utiliza Cookies propias y de terceros. Si continúas la navegación, estás aceptando el uso de las cookies. Entendido | Más información