Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/12/2013, 15:07
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 10 meses
Puntos: 528
Respuesta: Llamada cada 5 segundos, ¿excesivo?

Te recomendaría si no tienes posibilidad de usar técnicas como comet, hacer un "poolling", es decir para leer mensajes nuevos: hacer una llamada al servidor, el servidor revisa si hay mensajes, si no los hay espera, cuando haya mensajes responde, y encadena la siguiente llamada ajax. Esto reduce mucho la cantidad de llamadas al servidor. En php y a grandes rasgos algo así:

Código PHP:
Ver original
  1. while(1){
  2.    if(mensajes_nuevos()){//funcion que vea si hay mensajes
  3.          return $mensajes;//regresa los mensajes en algún formato.
  4.    }
  5.   sleep(5);// si no hay mensajes dormimos el proceso 5 o x segundos para no gastar recursos
  6. }
Cuando el cliente recibe la respuesta, vuelve a hacer otra llamada inmediatamente.

Esto te asegura un retraso máximo de 5 segundos por mensaje, considerando el tiempo en que la gente tarda en escribir o leer un mensaje (2-3 segundos) no significa demasiado tiempo.


Luego hay que ver el control de que no se caiga la conexión, por ejemplo si no hay respuesta luego de x minutos hacer otra llamada, pero eso ya es otra historia.