Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/11/2012, 12:29
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Actualizando datos de pantalla periodicamente

Lo más fácil, loong polling.

Una consulta se envía al servidor, si éste no tiene datos, "duerme" un tiempo para volver a consultar. Cuando haya datos, devuelve la consulta.

Tengo un chat implementado así:

cliente js hace una llamada ajax al servidor, el servidor recibe la petición y hace algo como esto:

Código PHP:
Ver original
  1. set_time_out(215);//permitimos que el proceso tarde en responder.
  2. $x=0;
  3. while($x<70){//ejecutamos hasta 70 veces este proceso.
  4.     if($datos=hay_datos())//si hay datos
  5.         return $datos;//regresamos datos, el cliente los recibe y hace otra llamada
  6.     sleep(3);//si no hay datos, dormimos 3 segundos
  7.     $x++;//aumentamos el contador, si no hubiera datos, se hará el ciclo 70*3= 210 segundos
  8. }
  9. return $vacio;//luego de 210 seg. regresamos la llamada vacía para que no caiga la conexión, y se haga otra petición.

Esto asegura un retardo máximo de tres segundos entre respuestas, y no satura al servidor de peticiones.