Tema: Comet
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/07/2009, 18:08
Avatar de pato12
pato12
 
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: Comet

Ahh, gracias!

Bueno estaba haciendo un chat con "comet", pero no me anda esta parte, solo me actualiza la primera ves vien y despues ya no, pero si hay nuevos datos.
Parte php:
Código php:
Ver original
  1. if(isset($_POST['indice'])){
  2.     $indice=$_POST['indice']; // El ultimo id que tiene el cliente
  3.     $ultimo=$HalfChat->ultimoComenario($_SESSION['sala']); // Sacamos el ultimo id de la sala
  4.     while($ultimo==$indice){ // SI es el mismo
  5.         $ultimo=$HalfChat->ultimoComenario($_SESSION['sala']); // Sacamos otra vees
  6.         sleep(3); // Esperamos 3 segundos
  7.     }
  8.     $comentarios=$HalfChat->verComentarios($_SESSION['sala']); // Si paso el while, es decir que ubo un cambio y sacamos los nuevo comentarios
  9.     $conexion=$HalfChat->isConection()?'true':'false'; // Vemos si no fue expulsado, para desirle al cliente que lo expulse
  10.     echo '{mensajes:"'.$comentarios.'",ultimaId:"'.$ultimo.'",conexion:'.$conexion.'}'; // Imprimimos los datos en  JSON
  11.     exit(); // Terminamos
  12. }
y el js:
Código javascript:
Ver original
  1. this.request=function(url,callback,parms){
  2.         var vars_temp='';
  3.         for(var par in parms)
  4.             vars_temp=vars_temp+'&'+par+'='+parms[par];
  5.         vars=vars_temp;
  6. //      alert("URL: "+url+" | Callback: "+callback+" | Parms: "+vars);
  7.         var Comet=this.xmlhttp();
  8.             Comet.open('post',url+'?'+Math.random(),true);
  9.             Comet.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  10.             Comet.onreadystatechange=function(){
  11.                 if(Comet.readyState==4){
  12. //                  alert("Comet.responseText: "+Comet.responseText);
  13.                     (callback||function(){})(Comet.responseText);
  14.                     Comet.abort();
  15.                     Comet=null;
  16.                 }
  17.             };
  18.             Comet.send(vars);
  19.     };
  20.     this.actualizarMensajes=function(){
  21.         var elwin=this;
  22.         this.request(this.configuracion.interfax,function(contenido){
  23.             var dom=elwin.dom(elwin.configuracion.divContenedor);
  24.             var data=(eval('('+contenido+')'));
  25.                 dom.innerHTML=data.mensajes;
  26.                 dom.scrollTop=dom.scrollHeight;
  27. //              alert("End! | "+elwin.ultimateId+" "+data.ultimaId);
  28.             elwin.ultimateId=data.ultimaId;
  29.             if(!data.conexion)
  30.                 document.location='index.php';
  31.             setTimeout(function(){
  32.                 elwin.actualizarMensajes();
  33.             },1000);
  34.         },{'indice':elwin.ultimateId});
  35.     };

Gracias
Salu2
__________________
Half Music - www.halfmusic.com