Comunidad de diseño web y desarrollo en internet online

AYUDA: Problemas con el SendAndLoad

Citar            
MensajeEscrito el 22 May 2006 09:58 pm
Estoy haciendo un chat basado en flash y Java.

Para resumir, la idea es trabajar dejando las peticiones gets abiertas, para que el chat no tenga que buscar mensajes cada n segundos.

Entonces tengo una funcion que utiliza el SendAndLoad para buscar los mensajes, y otra para los usuarios en linea.

El problema es que al parecer no pueden estar juntas, es como si una bloqueara la otra y no puedo realizar peticiones.

He aqui el codigo que estoy utilizando:

Código :

function refreshChat(){
   getMensaje.roomid = _root.id;
   path = "ChatServletMensajes";
   getMensaje.sendAndLoad(path,getMensaje,"GET");
   // Hasta aqui se hizo la peticion via GET de los mensajes, esta queda pendiente hasta 
        // que el servlet le responda.
}
getMensaje.onLoad = function(success:Boolean){
      if(success){
         agregarMensaje(getMensaje.mensaje); //Agrega el mensaje a la sala de chat.
         _root.enableRefresh=false;
         _root.refreshChat(); // Se llama de nuevo para oir nuevos mensajes.
         
      }else{
         trace("FAIL");
      }
};

var getUsuarios:LoadVars = new LoadVars ();
function  refreshUsuarios(){
      getUsuarios.usuarios="";
      path = "ChatServletUsuarios";
      getUsuarios.sendAndLoad(path,getUsuarios,"GET");
// Hasta aqui se hizo la peticion via GET de los usuarios online, esta queda pendiente hasta 
        // que el servlet le responda.
}
getUsuarios.onLoad = function(success:Boolean){
      if(success){
         trace("OK");
         _root.usuarios.removeAll();  //_root.usuarios es un List
         var usuarios:Array = getUsuarios.usuarios.split(";"); //El servlet devuelve un String
         for (var i=0; i<usuarios.length-1;i++)
         {
         var datos:Array = usuarios[i].split(",");
         _root.usuarios.addItem(datos[0], {id:datos[1], tipo:datos[2]});
         }
         _root.refreshUsuarios();
// Se llama de nuevo para ver cuando se actualiza la lista de usuarios.
      }else{
         trace("FAIL");;         
      }
};


Realmente desconozco que sucede, lo hago con una pagina web normal, que deja las dos peticiones GET pendientes, y estas reciben la informacion sin problema, pero cuando lo trato de implementar con Flash, el comportamiento es distinto.

Si alguien tiene una idea o alguna sugerencia pues bienvenida sea.

Saludos

Por alegr44

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 May 2006 10:03 pm
una solucion practica es dejar de lado las peticiones de GET y realizar un servidor en java por medio de socket esto te permite enviar y resibir datos teniendo a las peliculas de flahs conectadas de tiempo completo con el servidor, no se me parece mas sencillo.
la conexion de flash con el servidor seria por medio de XMLSocket

Por DanielJimenez

70 de clabLevel



Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 22 May 2006 10:09 pm
Es muy valida tu sugerencia, pero lamentablemente el cliente tiene que ser WEB.. manejarse por el puerto 80 o 8080 :?

Para asi evitarse problemas de firewal y bla bla bla.. :S Yo lo hubiese preferido asi como lo comentas pero bueh.. :P

EL problema basicamente es manejar multiples request :S

Por alegr44

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 May 2006 03:11 pm
Alguien me comento que podia hacerlo separando los usuarios y los mensajes en movies distintos, que de esta forma cada movie podia hacer los request necesarios.

Ahora, el problema es que desde un movie necesito acceder al list que se encuentra en el segundo para ver los usuarios seleccionados? como puedo hacer esto?

De verdad agradezco cualquier ayuda.

Gracias :D

Por alegr44

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 May 2006 04:03 pm
Pues ta podriamos ayudar si nos dices un poco mas de informacion...

Como por ejemplo cual es el nombre de tu MC o cuantos tienes. Pero recuerda que para accider a alguna variable dentro de un MC ocupas el _root.NombreDelMC.Variable..

Saludos,
Salu

Por salu

5 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 23 May 2006 04:27 pm
El nombre del MC es usuarios, pero creo que mi principal problema es que lo estoy cargando mal.

Tengo dos movies, principal.swf y usuarios.swf.

La forma como cargo usuarios.swf en principal.swf es creando un objeto de tipo movie clip (que lo llamo usuarioMovie) y coloco lo siguiente. usuarioMovie.loadMovie("usuario.swf").

En usuario.swf tengo un text (llamado texto) con un valor inicial llamado prueba.

Luego trato de acceder a ese valor de la siguiente forma:

_root.usuarioMovie.texto.text

Y me devuelve undefined :S

Creo que mi problema es como estoy cargando el movie en principal. Si me pueden orientar :D

Todo esto para manejar multiples request en un solo movie de flash :(

Por alegr44

2 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.