9 usos asesinos para WebSockets

A todos mis lectores: Afortunadamente para mí, estoy actualmente en sistemas de escala de Brasil, empapándome de un clima de 90º F (32,2º C) y llenándome de feijoada y caipiriña. Mientras tanto, para mantener este blog a la altura de sus estándares, recluté a mi hombre principal, Jonathan Freeman, para que lo eduque mientras estoy fuera. Sin más preámbulos, aquí está Jonathan: gurú del front-end, especialista en big data y músico de jazz. ¡Disfruta y nos vemos en un par de semanas! - ACO

Los usuarios ahora exigen información tan pronto como está disponible. Si tiene que actualizar la página para obtener nueva información, ya es demasiado tarde. Afortunadamente, un protocolo compatible con todos los navegadores modernos permite el intercambio directo de datos: WebSockets.

No existe ninguna otra solución que proporcione una verdadera comunicación bidireccional como WebSockets; sin embargo, muchos desarrolladores web todavía confían en hacks como el sondeo largo AJAX. (Para que conste, creo que las encuestas largas son muy creativas y funcionales, pero un truco de todos modos). La falta de entusiasmo por WebSockets puede estar relacionada con una vulnerabilidad de seguridad de hace años o la falta de compatibilidad con el navegador en ese momento, pero ambos problemas han sido dirigido.

[Trabaje de manera más inteligente, no más difícil: tiene los consejos y las tendencias que los programadores necesitan conocer en la Guía de supervivencia para desarrolladores. ¡Descarga el PDF hoy! | Manténgase al día con las últimas noticias para desarrolladores con el boletín informativo Developer World. ]

Determinar si usar WebSockets para el trabajo en cuestión es simple:

  • ¿Su aplicación implica que varios usuarios se comuniquen entre sí?
  • ¿Es su aplicación una ventana a los datos del lado del servidor que cambian constantemente?

Si respondió afirmativamente a cualquiera de estas preguntas, considere usar WebSockets. Si aún no está seguro y desea algo de inspiración, aquí hay algunos casos de uso excelentes.

1. Feeds sociales

Uno de los beneficios de las aplicaciones sociales es saber qué hacen todos tus amigos cuando lo hacen. Claro, es un poco espeluznante, pero a todos nos encanta. No querrá esperar minutos para descubrir que un miembro de la familia ganó un concurso de pastelería o que un amigo se comprometió. Estás en línea, por lo que tu feed debería actualizarse en tiempo real.

2. Juegos multijugador

La Web se está convirtiendo rápidamente en una plataforma de juegos. Sin tener que depender de complementos (te estoy mirando, Flash), los desarrolladores web ahora pueden implementar y experimentar con juegos de alto rendimiento en el navegador. Ya sea que esté tratando con elementos DOM, animaciones CSS, lienzo HTML5 o esté experimentando con WebGL, la interacción eficiente entre los jugadores es crucial. No quiero descubrir que mi oponente se ha movido después de que apriete el gatillo.

3. Edición / codificación colaborativas

Vivimos en la era de los equipos de desarrollo distribuidos. Trabajar en una copia de un documento solía ser suficiente, pero luego tenía que encontrar una manera de fusionar todas las copias editadas. Los sistemas de control de versiones como Git pueden ayudar con ciertos archivos, pero aún tendrá que rastrear a las personas cuando Git encuentre un conflicto que no puede resolver. Con una solución colaborativa como WebSockets, podemos trabajar en el mismo documento y omitir todas las fusiones. Es fácil ver quién está editando qué y si está trabajando en la misma parte de un documento que otra persona.

4. Datos de flujo de clics

Poder analizar cómo los usuarios interactúan con su sitio web es fundamental para mejorarlo. El costo de HTTP nos ha obligado a priorizar y recopilar solo los datos más importantes. Luego, seis meses después, nos damos cuenta de que deberíamos haber estado recopilando una métrica diferente, una que parecía poco importante pero que ahora arrojaría luz sobre una decisión crítica. Con la sobrecarga de las solicitudes HTTP fuera del camino, puede ser menos restrictivo sobre el tipo de datos que está enviando desde el cliente. ¿Quiere realizar un seguimiento del movimiento del mouse además de las cargas de página? Simplemente envíe los datos a través de una conexión WebSocket al back-end y consérvelos en su tienda NoSQL favorita. (MongoDB es bueno para registrar eventos como este). Ahora puede reproducir las interacciones de los clientes para ver qué estaba pasando realmente.