Pregunta

Estoy considerando pocas opciones para enviar datos del servidor al cliente para mi aplicación web en tiempo real.

He implementado una aplicación basada en la votación (cada cliente envía solicitudes HTTP al servidor después de cada 30 segundos). Aplicación que realmente no se amplía después de que 10 usuarios están en esta aplicación. se construye con MySQL, PHP, HTML y JQuery.

Sugerir amablemente cuál sería mejor considerando los requisitos a continuación: APE vs Node.js

  1. Debería poder manejar al menos 400 conexiones concurrentes a la vez
  2. El servidor debería poder impulsar los datos a todos estos clientes.
  3. Los clientes enviarían datos entre sí.
¿Fue útil?

Solución

Te sugiero encarecidamente que eches un vistazo al Socket.io. Es una solución completa para el empuje del servidor, que incluye la biblioteca del lado del servidor (escrita en Node.js) y la biblioteca del cliente que se realiza de manera transversal. No veo ninguna razón para que implemente su propio código para hacer lo que ya está hecho, trabajando y probado.

El único caso que Socket.io no manejará es su tercera solicitud, pero eso es imposible de todos modos. Si lo entiendo correctamente, ¿desea que dos clientes se comuniquen sin ayuda del servidor de terceros? No puede cambiar HTTP a P2P, al menos no ahora.

Si, por otro lado, tenía la intención de comunicar a dos usuarios a través de su servidor (haciendo algo como un chat privado de dos personas) que es totalmente factible usando Socket.io.

Otros consejos

Aunque todos se ejecutan hacia Node.js en este momento, hicimos una aplicación de chat basada en MONO Y estamos muy contentos con eso.

APE proporciona lo que está buscando bastante "fuera de la caja", ya que es una combinación de JS del lado del servidor y un marco de cliente APE_JSF que proporciona la funcionalidad (y más) que obtiene de Socket.io.

En este proyecto manejamos ~ 9000 usuarios concurrentes con mensajes en tiempo real. Se coloca un servidor NGINX frente a APE para proporcionar soporte DeFlate/GZIP

Esta configuración (sin NGINX también) no tendrá problemas para tratar sus requisitos, incluso en una máquina "no tan alta".

Dado que puede impulsar los datos a "un canal" o un solo usuario, debería poder lograr exactamente lo que está buscando con APE, desde transmisiones hasta mensajes directos.

Si está utilizando Apache dentro de su pila existente, como ya dijo, habrá problemas con la escala de sus usuarios incluso si usa sondeo largo en lugar de uno continuo. La solución podría ser utilizar un servidor web de alto rendimiento como nginx Para manejar muchas conexiones concurrentes.

Por otro lado, el nodo.js está hecho para este tipo de concurrencia de conexión y hay paquetes, como socket.io, lo que puede hacer que su desarrollador la vida sea mucho más fácil, ya que ofrece varios tipos de opciones de transporte con soluciones de respaldo y otra funcionalidad útil.

No recomendaría APE para aplicaciones a gran escala, está bien para las aplicaciones de chat, pero en lo que respecta al transporte de datos masivos que se refería al navegador del cliente, comienza a disminuir y aplastar después de un tiempo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top