Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/07/2014, 13:57
Avatar de Djoaq
Djoaq
 
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 12 años, 2 meses
Puntos: 38
Respuesta: estructura de datos para nodejs

Cita:
Iniciado por Blashak Ver Mensaje
tengo entendido que es recomendable utilizar mongo cuando utilices un sistema en tiempo real. De hecho, facebook utiliza mongoDB para esto. Si esta estructura no es la adecuada para utilizar mongo, como deberia ser??
Hola , tal como ya te han comentado muy bien , te recomiendo :

Nodejs + websockets + mongoDB para realizar tu proyecto .

MongoDB esta orientado a sistemas basados en Nodejs y no en APACHE + php + mysql ...

Websockets (socket.io) se utiliza para establecer comunicaciones bidireccionales full-duplex entre cliente / servidor .

Diferencias ... entre LAMPP/XAMPP (Apache, php ,Mysql) :

Para hacer un proyecto de comunicaciones en tiempo real ... es muy costoso , laborioso .. y poco eficiente . ( Push , longPolling , comet..)

En una aplicación basada en esta arquitectura , el servidor responde al cliente cuando este hace una petición .

Entonces ... vas a preguntarle al server cada segundo X cada uno de los usuarios si hay mensajes que actualizar??

En el caso que sí ... Tampoco sería a tiempo real ... siempre tendrías un decalaje de 1 s + la latencia!

Además piensa que esta tecnología no es multi-hilo ..... es decir que si de repente se empiezan a hacer peticiones al server este encolara el trabajo y lo resolvera en orden secuencial.

NODEjs Websockets + mongo db :

Programación orientada a eventos ... multi-hilo .. es decir que como cada cliente se conecta a través de un hilo de comunicación bidireccional , puedes actualizar N hilos que quieras a tiempo real disparando petición desde el server a los clientes directamente.

Con lo que es muchísimo mas eficiente que andar preguntandole a server cada N secuencia de tiempo si hay mensajes nuevos no ?

Por otro lado mongodb es no-SQL , con lo cual tienes que diseñar tus colecciones pensando en los patrones de acceso mas frecuentes .

Y a la pregunta... puedo tener los 2 sistemas corriendo a la vez?
La respuesta es ,,, sí se puede!!! siempre que sepas diseñar bien tu proyecto o ya tengas gran parte hecho y necesites solo agregar algunas funciones extras.

Hay muchisima documentación en internet , te invito a que la busques y lo mires.. porque sinceramente amigo mio , merece la pena!

Espero haberte ayudado !

Un saludo!