Node.js y Socket.io permiten crear aplicaciones web en tiempo real mediante comunicación bidireccional entre el servidor y los usuarios. El modelo tradicional de web es unidireccional "pull", mientras que las aplicaciones en tiempo real requieren comunicación "push". Tecnologías como Comet y WebSockets permiten comunicación bidireccional, pero Node.js es particularmente eficiente. Con Node.js y Socket.io, es posible crear canales bidireccionales para aplicaciones como chats simples o startups innovadoras.
6. Push (Lo que necesitamos)
Servidor Web
Navegador Web
Datos
Evento
7. Desde hace algunos años existen soluciones pero son
poco eficientes…
Servidor Web
Ajax (Polling)
petición
respuesta
petición
respuesta
petición
respuesta
8. • Script de prueba para Apache
2.2 con PHP 5.3
<?php
sleep(3);
echo «hola mundo»;
?>
Simulamos con un script,
una petición que toma
3 segundos en ejecutarse.
11. Con los servidores tipo Comet nos acercamos mucho más a la
solución ideal…
Servidor tipo Comet
Long polling
petición
respuesta
petición
respuesta
petición
12. Algunos servidores Comet / Websockets…
Python Java .Net Ruby Javascript
Tornado
Twisted…
Cometd
Protcolo
Bayeux
GlassFish
ActiveMQ…
WebSync
Protocolo
Bayeux
Thin/Faye
protocolo
Bayeux
Node.js*
Es posible
ejecutarlo en
Windows
Azure
Open Source Open Source Comercial Open Source Open Source
13. Acerca de Node.js
• Basado en el motor
Javascript Google V8
• Todas las operaciones
son asíncronas
• Uno de los servidores
más rápidos del mercado
• Altamente eficiente
• Ideal para la creación de
aplicaciones en tiempo
real
14. En Node.js todas las operaciones son asíncronas. No usa procesos…
Comportamiento de Node.js con 1000 peticiones,
100 de ellas concurrentes
0
1
2
3
4
5
6
7
8
9
10
Node
Peticiones
Tiempo (s)