Dirijo un sitio web donde los usuarios pueden chatear entre sí a través del navegador (piense en el chat de Facebook). ¿Cuál es la mejor manera de manejar la interacción en vivo? (En este momento tengo un sondeo de ir cada 30 segundos para actualizar usuarios en línea y los nuevos mensajes entrantes, y otra encuesta pasando las páginas de chat cada segundo para conseguir nuevos mensajes.)Escalar una aplicación de chat - encuestas cortas versus encuestas largas (AJAX, PHP)
Cosas que me he considerado:
- Web socket HTML5: no usé esto porque no funciona en todos los navegadores (solo Chrome).
- Sockets de memoria flash: no lo usé porque finalmente quería dar soporte a la web móvil.
En este momento, estoy utilizando un sondeo corto porque no sé cuán escalable sería el largo sondeo AJAX. Estoy ejecutando un servidor VPS desde el servidor en este momento (ejecutando Apache). ¿Debo usar encuestas largas o encuestas cortas? No necesito tiempos de respuesta absolutamente inmediatos (solo "lo suficientemente bueno" para una aplicación de chat). ¿Las encuestas cortas a menudo con unos cientos de miles de usuarios van a matar a mi servidor? Cómo escalo esto, por favor ayuda!
Sé que Apache generalmente no funciona bien con muchas conexiones simultáneas. Y también se da cuenta de que puede haber otras soluciones creadas para este scenerio (nodejs, etc.). Pero en este momento, me gustaría evitar volver a escribir la aplicación completa. –
¿Qué hay de implementar soluciones múltiples para diferentes plataformas? Es decir, si HTML5 es compatible, el navegador usa HTML5, si el flash es compatible, el navegador usa el flash, si ninguno de los anteriores es compatible, el navegador usa ajax. – binaryLV
Puede que le interese esta publicación http://urbanairship.com/blog/2010/09/29/linux-kernel-tuning-for-c500k/ –