Im trabajando en una aplicación de chat simple, probablemente de 10 a 20 usuarios por habitación.Escritura simple de chat de larga duración de PHP, ¿es demasiado simple?
El script que consulta la base de datos en busca de nuevos mensajes parece demasiado simple para todas las solicitudes que recibirá.
A continuación se muestra el bloque de código que se repite para los mensajes nuevos, el resto del guión es sólo conseguir las variables, la construcción de la consulta y el objeto respuesta JSON:
$sleepTime = 1; //Seconds
$data = "";
$timeout = 0;
//Query database for data
while(!$data and $timeout < 10){
$data = getQuery($sql);
if(!$data){
//No new messages on the chat
flush();
//Wait for new Messages
sleep($sleepTime);
$timeout += 1;
}else{
break;
}
}
El bloque de instrucción anterior al base de datos para mensajes nuevos cada segundo durante 10 segundos, si después de los 10 segundos no hay mensajes nuevos notificará al navegador. El navegador espera 5 segundos y luego envía otra solicitud al para recibir mensajes nuevos.
Sin embargo, si la secuencia de comandos encuentra nuevos mensajes, el navegador solicitará más mensajes nuevos al instante tan pronto como reciba la respuesta con los nuevos mensajes del servidor.
Este proceso sigue y sigue ...
Entonces, ¿cómo puedo optimizar este proceso más lejos? ¿Es esto tan bueno como se pone? Funciona bien en mi servidor local, pero me temo que solo unos pocos usuarios podrían sobrecargar un servidor en vivo (host compartido) con todas las solicitudes y los bucles.
Aquí es demostración en vivo se puede comprobar con Firebug http://pixbush.com/chat/chat.php
Simplicity es lo que nosotros como programadores ** nos esforzamos **. –
El enlace ya no funciona. – kachar