Hola,
en este instructable, te voy a mostrar cómo crear un servidor web ligero y muy sensible con WebSockets.
Lo usaré para controlar un LED utilizando un Arduino pero el concepto puede aplicarse a muchos otros proyectos.
Puesto que este proyecto no utiliza ningún periférico a bordo, que funciona con casi cualquier ordenador, pero ejecutando en una máquina de baja potencia como el Raspberry PI tiene sentido para un funcionamiento continuo.
¿Por qué utilizar Node.Js o WebSockets?
Hay algunos tutoriales en la web que muestran cómo utilizar un Raspberry Pi para la automatización del hogar, pero muchos usan php y peticiones http simple para enviar datos al servidor. Esto está bien para simplemente encender y apagar algunas luces pero alcanza rápidamente sus limitaciones cuando desea ejecutar código de servidor o si desea comunicación bidireccional.
Node.Js le permite escribir programas en JavaScript y la gran cantidad de bibliotecas de la comunidad le permite escribir programas muy intrincados en unas pocas líneas de código.
WebSockets tienen algunas ventajas sobre las solicitudes http simple:
- Velocidad: Una petición http normal tiene que establecer una conexión antes de cualquier transacción puede suceder que toma mucho tiempo. Un websocket es siempre abierto y listo para enviar o recibir datos.
Esto significa que el retraso puede ser tan bajo como tu ping, a tan sólo un milisegundo o dos en la mayoría de los casos - Bidireccional: Websockets permite que los datos se envían en ambas direcciones, esto también significa que el servidor puede desencadenar eventos en el cliente.