En este post, vamos a dedicar un espacio a una gran librería open source, que próximamente formará parte de la gran familia asp.net. Es una biblioteca desarollada por Damian Edwards y David fowler que forman parte del equipo de asp.net, y simplifica el proceso para crear aplicaciones que respondan en tiempo real entre cliente y servidor, y así de esta forma, obtenemos una comunicación de tipo bidireccional. A lo que nos referimos diciendo con una comunicación en tiempo real, es la capacidad de enviar código desde el servidor a los clientes conectados sin tener que esperar a que un cliente solicite datos.

Características de SignalR:

Se usa para todo tipo de aplicaciones en tiempo real, pero las más utilizadas suelen ser chats, videojuegos.

Otra característica de esta biblioteca es la capacidad de gestión que tiene de las conexiones de forma automática, y nos permite el envío de mensajes a clientes específicos o a todos los clientes conectados simultáneamente. Un ejemplo sería utilizando el método Clientes.enviar.all(mensaje). Otra característica de signalR, es que si nuestro navegador es de última generación, trabajaremos con websocket.

 

Estructura de SignalR:

Si quieres aprender más de cómo usar esta librería implementándola en la creación de un chat, no dudes en pasarte por Formación Tajamar en donde puedes encontrar videotutoriales sencillos para crear tus propias aplicaciones. Haciendo referencia al videotutorial chat con signalR que nos podemos encontrar en su sección de videos. Vamos a explicar un poco la estructura para poder entenderlo un poco mejor.

  • Lo primero que tenemos que hacer es añadir la clase signalrHub class que es la que nos incluirá la referencia a las librerías de signalR (otro método sería añadiéndolo mediante nuget), en esta clase nos encontramos con dos cosas interesantes: la primera es que heredamos de la clase hub (que es la clase que concentra todas las conexiones), que es la encargada de unificar todas las conexiones y enviar las distintas peticiones. Y la segunda es el objeto Clients que es de tipo dinámico y lo usamos para hacer la relación entre el lado del cliente y el lado del servidor.
  • El siguiente paso es añadir la clase Startup que será invocada por el motor de signalR al arrancar la web y es la que se encarga de mapear las clases hub que hay en la solución y generar dinámicamente el script que se encontrará en /signalR/hubs que hará de proxie del servidor para el cliente.
  • Y por último, nos creamos el Index para hacer la estructura del chat (insertamos contenedores y damos un aspecto visual bonito a nuestro chat) sin olvidarnos de hacer referencia a los scripts que necesitemos para nuestra aplicación.

 

Conclusión:

Desde mi punto de vista nos encontramos ante una librería muy potente, con muchos recursos, y fácil de implementar y manejar. Así que si estás interesado en crear tus propias aplicaciones en tiempo real, no dudes en descargarte su código fuente de Github.

También puedes descargarte el código del videotutorial que hemos nombrado anteriormente Chat SignalR para que tengas una pequeña ayuda al inicio de tu andadura.

Espero esto haya sido de su utilidad, saludos y nos vemos en próximos posts!.

Autor: José Ignacio Rodríguez García

Curso: Microsoft MCSD Web Applications + SharePoint Apps

Centro de Formación: Tajamar Año académico: 2015-2016