¿Node.js?

B

Necesito controlar desde uno o más clientes web el gpio de cada una de las muchas raspberry pi que pueda haber en la red. Para ello había pensado un servidor node.js al que se conectaran los clientes y las rpi, mi duda es al conectar las rpi si deberían ser servidores node.js o un microserver escrito en python con llamadas http al servidor.

¿Alguna idea? si solo fuera una rpi era hacerle servidor a ella con node.js y ya está, el problema es leer las entradas de todas etc. ¿Tal vez haya alguna libreria para comunicar servers en node.js? soy n00b en node.js pero creo que es lo más adecuado a lo que quiero hacer.

TeRRo90

#1 Por que no lo haces con Socket.io y conectas todas las rpi a un mismo socket server.

1 respuesta
B

#2 oh si bueno, no lo comenté pero voy a usar socket.io el tema es como hacer la conexióna ese socket desde las rpi no sé si con node o con qué :/

1 respuesta
TeRRo90

#3 Yo con las rpi no tengo ni idea, pero al ser una distribución linux si hiciera falta podrías instalar node.js en los clientes. Ademas tu solo tendrías un Socket Server en el servidor y las rpi serían socket cliente para que se conecten al socket server.

1 respuesta
B

En cada raspberry pi node.js con este módulo https://npmjs.org/package/pi-gpio y luego puedes usar express como api restful para las peticiones web o usar websockets, a tu gusto.

2 respuestas
naete

#1 #5 Eso es lo que iba a decirte yo, lo veo lo mejor :)

1 respuesta
B

#4 #5 #6 Muchas gracias cracks. Como soy noob en node.js os digo entonces como lo planteo a ver qué os parece.

Servidor node.js

node.js + express.js + sockets.io + jade/angular/lo que sea con la interfaz y el socket al que se conectaran desde la web y las rpi.

rpi

node.js con el modulo pi-gpio y un socket que se conecte al del server en el que enviar y recibir.

2 1 respuesta
B

#7 yo lo haría así.

1- servidor nginx/apache que actuará como servidor web(no veo necesidad de usar node.js a no ser que necesites alta disponibilidad):

-angularjs para la vista
-sockets.io/peticiones ajas restful para peticiones a los rpi

2- nodos rpi

node.js
módulo gpio
sockets.io/express

1 1 respuesta
B

#8 Pero la gente que va a controlar se conectaran a una web, no a cada rpi individualmente. No sé si me entiendes. Y van a ser 200 por eso quería node.js que irá bastante mejor supongo.

Perdona si no te he entendido pero según tu post sería conectarse a la rpi ¿no?

1 respuesta
B

#9 1 es la web, 200 peticiones simultáneas las maneja el servidor web mas mierder del universo. Los clientes se conectan al servidor web nginx/apache y el servidor web comunica con los raspberry con websockets o peticiones ajax si usas express en los rpi.

2 respuestas
B

#10 vale, gracias :)

1 respuesta
TeRRo90

#10 #11 yo si utilizara node.js es por tener un lenguaje común, es decir, por no programar en javascript unas cosas y en php (Como cualquier otro lenguaje) para el tema del servidor.

Ademas yo utilizaría node.js para aprender un lenguaje que esta en auge.

1 respuesta
B

#12 angularjs es un framework hecho en html5 y javascript, no hace falta php en ningun lado.

Usuarios habituales