Web sockets es una de las características significativas que han sido agregadas a HTML5.  Saltando hacia atrás en el tiempo de la informática, se encuentra la definición de socket como la manera de establecer una comunicación entre dos estaciones remotas. Esta comunicación establecida de manera activa o persistente. Al utilizar clientes de Telnet, FTP o SSH, se utilizan programas que se basan en este tipo de comunicación. Los programas sockets son típicamente desarrollados en el servidor (servidor socket) y en el cliente (cliente socket). Ambos se comunican por acuerdo previamente establecido que lo constituyen los protocolos de comunicación, como lo son según el ejemplo antes mencionado de FTP, Telnet, HTTP.  Aunque Telnet es un programa que puede actuar para interactuar con diferentes servidores sockets. Un servidor web es el que se especializa en servir comunicación HTTP y por ende un navegador web, es el cliente que interpreta la comunicación HTTP con dicho servidor. De hecho, por la característica multipropósito del cliente Telnet, éste puede ser utilizado para comprobar  servidores web, utilizando comandos como telnet google.com.cu 80. De esta manera el servidor web, interpreta que un navegador se ha conectado. Incluso se le puede hacer peticiones para obtener páginas específicas. Cuando se le pide una página o recurso al servidor web, este la entrega y automáticamente la conexión es cerrada.  Esto sucede debido a que HTTP es un protocolo sin estado.  Web sockets proveen un protocolo adicional, lo que permite simultáneamente mantener un canal sin estado utilizando el protocolo HTTP y un canal socket abierto con el servidor mientras la página solicitada este activa. Este tipo de comunicación usualmente es utilizada para sostener comunicaciones constantes cliente y servidor, póngase por ejemplo mensajería instantánea, juegos multijugador. ¿Cómo utilizarlo? Primeramente hay que tener en cuenta algunos detalles significativos para la utilización de websockets en las aplicaciones. Empezando por el navegador web, éste debe tener soporte para utilizar websockets,  los motores Webkit (Chrome, Safari) soportan completamente esta característica. Generalmente el esquema de comunicación es identificado por ws: // o wss: //.

1

Con la declaración mostrada, el cliente intenta establecer una comunicación con el servidor. Una vez hecho esto, el uso de websockets se potencia en dos elementos que el objeto WebSocket tiene asociado, el evento onmessage  y el método send respectivamente. El evento onmessage permite que se le definan acciones a realizar cuando el servidor envía datos hacia el cliente.

2

El envío de datos generalmente se realiza en una cadena de texto, usualmente codificada en JSON, lo que significa que al recibir los datos, éstos pueden ser transformados en objetos JSON una vez que se interpreten. De igual manera, el envío de datos se realiza serializándolos en una cadena JSON a ser interpretada por el servidor.

3

Sin embargo, también es posible enviar datos binarios, no solo únicamente texto, ello permite transferir otro tipo de datos como recursos de multimedia. Para ello el cliente debe tener especificado el tipo de datos binarios a enviar, que suele ser blob o arraybuffer.

Los eventos sockets permiten chequear el estado de la conexión. Anteriormente se detalló el evento que está a la espera de los mensajes enviados por el servidor: onmessage. Pero también está el evento que detecta un error en la conexión onerror y el cierre de ésta onclose.

La tecnología que reside en los Websockets permite establecer una nueva forma de comunicación cliente servidor. Mejora la eficiencia cuando el servidor es quien necesita actualizar al cliente, siendo una alternativa a mecanismos como polling o comet. Al funcionar con modelos publicador-subscriptor se convierte en herramienta para la construcción de aplicaciones que necesiten actualización de datos en tiempo real.

Anuncios