Aplicaciones web en tiempo real y SignalR

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

 

Scroll al inicio
Resumen de Cookies

Una Cookie es un fichero que se descarga en su ordenador al acceder a determinadas páginas web. Las cookies permiten a una página web, entre otras cosas, almacenar y recuperar información sobre los hábitos de navegación de un usuario o de su equipo y, dependiendo de la información que contengan y de la forma en que utilice su equipo, pueden utilizarse para reconocer al usuario. El navegador del usuario memoriza cookies en el disco duro solamente durante la sesión actual ocupando un espacio de memoria mínimo y no perjudicando al ordenador. Las cookies no contienen ninguna clase de información personal específica, y la mismas se borran del disco duro al finalizar la sesión de navegador (las denominadas cookies de sesión).

La mayoría de los navegadores aceptan como estándar a las cookies y, con independencia de las mismas, permiten o impiden en los ajustes de seguridad las cookies temporales o memorizadas.

Cookies utilizadas en el sitio Web

A continuación se clasifican las cookies utilizadas por este sitio Web:

  • Cookies técnicas: Son aquéllas que permiten al usuario la navegación a través de una página web, plataforma o aplicación y la utilización de las diferentes opciones o servicios que en ella existan como, por ejemplo, controlar el tráfico y la comunicación de datos, identificar la sesión, acceder a partes de acceso restringido, recordar los elementos que integran un pedido, realizar el proceso de compra de un pedido, realizar la solicitud de inscripción o participación en un evento, utilizar elementos de seguridad durante la navegación, almacenar contenidos para la difusión de videos o sonido o compartir contenidos a través de redes sociales.
  • Cookies de personalización: Son aquéllas que permiten al usuario acceder al servicio con algunas características de carácter general predefinidas en función de una serie de criterios en el terminal del usuario como por ejemplo serian la dirección IP de conexión, el idioma, el tipo de navegador a través del cual accede al servicio, la configuración regional desde donde accede al servicio, etc.
  • Cookies de análisis: Son aquéllas que, bien tratadas por nosotros o por terceros, nos permiten cuantificar el número de usuarios y así realizar la medición y análisis estadístico de la utilización que hacen los usuarios del servicio ofertado. Para ello se analiza su navegación en nuestra página web con el fin de mejorar la oferta de productos o servicios que le ofrecemos.
  • Cookies publicitarias: Son aquéllas que, bien tratadas por nosotros o por terceros, nos permiten gestionar de la forma más eficaz posible la oferta de los espacios publicitarios que hay en la página web, adecuando el contenido del anuncio al contenido del servicio solicitado o al uso que realice de nuestra página web. Para ello podemos analizar sus hábitos de navegación en Internet y podemos mostrarle publicidad relacionada con su perfil de navegación.
  • Cookies de publicidad comportamental: Son aquéllas que permiten la gestión, de la forma más eficaz posible, de los espacios publicitarios que, en su caso, el editor haya incluido en una página web, aplicación o plataforma desde la que presta el servicio solicitado. Estas cookies almacenan información del comportamiento de los usuarios obtenida a través de la observación continuada de sus hábitos de navegación, lo que permite desarrollar un perfil específico para mostrar publicidad en función del mismo.
  • Cookies propias o de terceros: Las cookies “propias”, son las gestionadas por el dominio al que el usuario está accediendo y del que solicita un determinado servicio. No obstante, la Web puede utilizar servicios de terceros que, por cuenta del titular de la Web, recopilaran información con fines estadísticos, de uso de la Web por parte del usuario y para la prestación de otros servicios relacionados con la actividad de la Web y otros servicios de Internet. Generalmente, son enviadas al equipo del usuario desde un dominio diferente al nuestro que es gestionado por otra entidad colaboradora.
  • Cookies de sesión o permanentes: Las cookies de sesión se asignan al dispositivo desde el que el usuario esté navegando sólo por la duración de la visita a la web, estas cookies desaparecen automáticamente cuando el usuario cierra el navegador. Si las cookies son permanentes los datos se almacenan en el equipo del usuario utilizado para navegar, siendo su duración temporal la mínima imprescindible atendiendo a la finalidad de su uso. La duración temporal de las cookies permanentes y su fecha de expiración puede ser consultada a través de la configuración de su navegador.
  • Cookies de redes sociales: Las cookies de RRSS pueden almacenarse en su navegador mientras navega por dichas redes, por ejemplo, cuando utiliza el botón de compartir contenidos en alguna red social. La información sobre las cookies de las redes sociales que utiliza esta web puede verla en sus propias políticas de cookies.