socket.io ...and websockets for all.
Otra de las novedades que trae HTML5 es la de los famosos websockets. El protocolo HTTP funciona de tal manera que no existe una conexión fija entre el cliente y el servidor; el navegador y el servidor se están continuamente lanzando piedras con mensajes, y a veces para simular que la conexión es permanente (una sesión) se acompaña de alguna marca como una cookie. Los websockets nos dan la posiblidad de establecer una conexión fija entre cliente y servidor como la que hay en un IRC o en los servicios de juegos; en el navegador podemos conectarnos a un servidor de websockets con una especie de Sockets ultrasimplificados y por supuesto orientados a eventos.
Esto nos abre puertas a muchas aplicaciones, desde información en tiempo real, el obvio chat, juegos HTML5 multijugador, etc... . Una pregunta que en buena lógica atormentaría a cualquier sysadmin con canas que oye hablar de esto por primera vez es pero chacho ¿qué servidor va a aguantar ahora la tralla de conexiones permanentes? Un servidorcillo web con su apache y su php si encima le exiges mantener conexiones permanentes reventará. Ahí es donde entran en juego tecnologías como Node.js, que con un solo hilo y con eventos te aguantan lo que sea.
Websockets 'puros'
En teoría los navegadores debieran tener soporte para un objeto javascript llamado WebSocket y un programa cliente podría tener este aspecto:
pure WebSockets Hello Web Sockets - PURE
Pure Web Sockets sample