WebSockets hacen posible tener comunicación interactiva y bidireccional entre el navegador del usuario y el servidor.
En este artículo explicaré qué son los WebSockets. No entraré en detalles de implementación, pero la idea es que entiendas que es lo que sucede internamente cuando usas WebSockets. Además te daré una idea de su soporte actual por los navegadores.

¿Qué son WebSockets?

Cuando se hace uso de internet mediante el navegador, incluso cuando no se trabaja con WebSockets, se está realizando básicamente una conexión entre dos computadoras. Tu computadora debe conectarse a un servidor, por el ejemplo el servidor de Facebook, aunque sea por un segundo para intercambiar la información que tu computadora desea obtener. Los WebSockets sirven para realizar conexiones como la que acabo de describir, pero de manera persistente.

Conexión entre navegador y servidor

Los WebSockets comparten datos rápidamente. Si yo deseo compartir mis datos contigo y tú y yo somos computadoras, lo primero que tengo que hacer es enviarte una solicitud diciéndote ¡Hola!. Y luego tú respondes usando lenguaje de computadoras ¡Hola!. Y yo te digo Deseo enviarte un archivo y tú dices ¿Qué tipo de archivo quieres enviarme? y después yo te respondo… Y luego después de 4 o 5 pequeños mensajes entre nosotros yo envío el archivo. Pero que pasa si después de eso yo digo ¡Perfecto! Quiero enviar otro. Si no tenemos un protocolo de comunicación abierto tenemos que repetir de nuevo la misma conversación inicial de pequeños mensajes entre nosotros. Tengo que volver a decirte que mensaje quiero enviar ahora, tú tienes que confirmar la aceptación de dicho formato, etc. En el caso que estemos trabajando con miles de archivos, esto se torna bastante lento.

WebSockets al rescate

Con WebSockets solo necesitas crear la conexión una vez. Por eso es llamada una conexión persistente. Una vez que te has conectado a un web socket puedes enviar datos en ambas direcciones de manera rápida y eficiente. No solo es una manera rápida de construir nuestros sitios web, sino también bastante fácil de entender y razonar cuando estamos escribiendo código.

Sesiones interactivas

WebSockets no deben ser usadas en todos los sitios web. Si estas construyendo una web simple e informativa realmente no necesitas WebSockets. WebSockets han sido creados mayormente para lidiar con interactividad. Entonces si necesitas que tu navegador intercambia gran cantidad de datos con tu servidor, por ejemplo en el caso de construir un chat entonces si va ser necesario usar WebSockets

Soporte de navegadores

El sitio Can I Use nos da una muy buena idea del soporte actual para WebSockets por parte de los navegadores. Podemos ver en la tabla que todos los navegadores actuales en sus últimas versiones soportan el uso de WebSockets.