Muchos, los más atentos, habréis oído hablar de este nuevo componente en HTML5, pero, aun así, no entendéis cómo se trabaja con websockets. Nadie os lo puede reprochar. Yo no podría.
¿Qué es websocket?
Websocket es una API que permite realizar comunicación bidireccional y abierta entre dos dispositivos; en este caso, entre un cliente y un servidor.
Vamos a poner un ejemplo, porque con ejemplos y parábolas se llega muy lejos en las explicaciones, como todos sabemos por nuestro paso por primaria:
Pepín es un señor de mediana edad muy simpático que organiza encuentros de “Amigos del 600”. Bien, pues imaginemos que Pepín accede a una página de Internet. Cuando esto pasa en realidad lo que sucede es que dos computadoras están hablando, mantienen una charla. Una de las computadoras es la de Pepín y la otra es el servidor.
Diálogo entre computadoras
“La computadora cliente”, realiza una solicitud de comunicación sobre una “computadora servidor”. En este caso la solicitud de comunicación comienza con un saludo. El ordenador de Pepín dice algo así como “Hola” a la computadora servidor. La computadora servidor le responde “Hola, a ti también”. Que conste que es una conversación figurada, no os liéis que aquí nadie dice “Hola” literalmente. El pc de Pepín sigue: “¿Te puedo enviar un archivo?”, por ejemplo, si es que Pepín deseara mandar un archivo. El servidor va a responderle: “¿Qué tipo de archivo?”. “Un archivo jpg” le dirá el ordenador de Pepín. “¿Cuánto pesa este archivo jpg?”, y así… luego la computadora de Pepín le va a responder, etc.
La computadora servidor le va a contestar siempre dependiendo de lo que se haya predeterminado en ella antes para un intercambio de este tipo de archivos.
Esto es lo que ocurre normalmente cuando trabajamos o interactuamos con una página estática, las de toda la vida, una página simple. La conversación se encuentra cerrada y simplificada. Lo malo es que cada vez que Pepín entre a su página para obtener de nuevo información va a tener que empezar otra vez con esta conversación. ¿Por qué? Porque no hay una comunicación abierta entre los dos o al menos no se mantiene abierta.
Si te he visto no me acuerdo
Tanto el cliente como el servidor se olvidan de que esta conversación alguna vez se ha producido en el momento en que se cierra la conexión. Por lo tanto, cada vez que vas a entrar de nuevo tienes que empezar con el “hola” al servidor, mostrarle tus intenciones, lo que quieres, cómo lo quieres, y después despedirte. Y lo siento, por mucho que estimes a tu servidor, cuando todo acabe no se acordará de ti y tampoco cuando cuando vuelvas a él a por material nuevo.
“El olvido es la única venganza y el único perdón.” -J.L. Borges–
No te lo tomes a pecho, Pepín, está todo programado así. Lo tuyo es una conexión de una sola petición, momentánea y perecedera, y el protocolo está pensado para prestar servicio a un vasto número de gente. No se pueden mantener conexiones profundas de manera gratuita así como así.
¿Qué es websocket, entonces?
Bien, con websocket sí se mantiene abierta esta comunicación de la que hemos estado hablando. Se crea un websocket y en el momento en el que se abre se puede realizar comunicación un bidireccional abierta. Eso quiere decir que el servidor le puede hablar al cliente y el cliente al servidor. El objetivo final de los websockets es el envío de información (o comunicación entre cliente y servidor) en tiempo real. Un socket es un protocolo de comunicación bidireccional y un websocket es lo mismo, solo que este trabaja dentro de otro protocolo direccional llamado HTTP.
Como digo, la finalidad del websocket es crear conexiones bidireccionales y duraderas entre un cliente y un servidor. Creamos la conexión, cliente y servidor, se plantea el cómo comunicarse utilizando el mismo esquema que HTTP, solo que manteniendo abierto el puerto y decidiendo enviarse mensajes en tiempo real.
De esta manera el servidor podrá enviar a Pepín, o a cualquiera de sus estimados clientes, cualquier mensaje en cualquier momento y lo recibirán de inmediato. Lo mismo pasaría al contrario. Nosotros podremos crear un mensaje desde nuestro ordenador y podremos enviarlo sin tener que empezar de cero con una nueva conexión o con la dichosa conversación. Ya se encontrará abierta y nos reconocerá.
Y ahora ya estáis más o menos preparados para dar respuesta a la temible pregunta. No me refiero al “¿todavía me quieres?”, sino a “¿qué es Websocket?”. Otra duda, sin embargo, me queda a mí, a ver si teneis respuesta…
¿Conocéis ya Pandora RC?
Pandora RC es un sistema de gestión remota de equipos informáticos (software de escritorio remoto) que puede ayudarte con muchas tareas.
¿Quieres conocer qué es lo que Pandora RC puede hacer por ti? ¡Haces muy bien! Puedes ver mucho más entrando aquí.
O también puedes enviar cualquier pregunta que tengas acerca de Pandora RC utilizando este formulario de contacto.
¡El equipo de Pandora RC estará encantado de atenderte!
El equipo de redacción de Pandora FMS está formado por un conjunto de escritores y profesionales de las TI con una cosa en común: su pasión por la monitorización de sistemas informáticos. Pandora FMS’s editorial team is made up of a group of writers and IT professionals with one thing in common: their passion for computer system monitoring.