Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/11/2010, 04:48
Pimager
 
Fecha de Ingreso: julio-2010
Mensajes: 298
Antigüedad: 14 años, 4 meses
Puntos: 8
Respuesta: Problema con Red5 y AS3

Una cosa más, que no sé si es posible. Tengo un chat con Red5 desarrollado en AS2, puedo hacer que se comunique con otro chat desarrolado en AS3?

En AS2 hago lo siguiente:

Código:
import org.red5.utils.Delegate; 
import com.gskinner.events.GDispatcher; 
 
class GlobalObject { 
   public function GlobalObject() { 
     super(); 
     so = SharedObject.getRemote("3", "rtmp://localhost:1935/fitcDemo", false);  
     so["newMessage"] = Delegate.create(this, newMessageHandler); 
     so.onSync = Delegate.create(this, onStatus); 
   }    
   public function sendMessage(p_message:String):Void{ 
     so.send("newMessage", p_message); 
   } 
   private function controlMessageHandler(p_message):Void{ 
     chat_txt.text += p_message; 
   } 
   private function onStatus(evtObj):Void{ 
      // an update has been recieved, send out to the concerned parties 
   } 
}

Y en el Chat AS3, tal y como me muestra el ejemplo del siguiente link: http://dev.binertia.com/chat.mxml

Código:
    private function doconnect():void { 
      if(!nc){ 
   nc = new NetConnection(); 
   // set the encoding to AMF0 - still waiting for AMF3 to be implemented on Red5 
   nc.objectEncoding = ObjectEncoding.AMF0; 
   nc.addEventListener(NetStatusEvent.NET_STATUS,onConnectHandler); 
   nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR,onConnectErrorHandler); 
   nc.client = this; 
   nc.connect("rtmp://localhost:1935/fitcDemo");                
   con_btn.label = "Exit"; 
      } 
     } 
     private function sendText():void { 
         so.setProperty("newMessage", msj_txt.text); 
     } 
     private function newMessageHandler(event:SyncEvent):void { 
       if(so.data[chatname] != undefined) { 
   chat_txt.text += so.data["newMessage"]+"\n"; 
       } 
       msj_txt.text = ""; 
      } 
     private function onConnectHandler(event:Event):void { 
       connected = nc.connected;             
       so = SharedObject.getRemote("3", "rtmp://localhost:1935/fitcDemo", false); 
       so.addEventListener(SyncEvent.SYNC,newMessageHandler); 
       so.client = this; 
       so.connect(nc); 
    }
El tema es que cuando escribo algo en el chat hecho en AS2, veo lo escrito en ese chat, pero no en el hecho en AS3, y viceversa. No sé si me estoy dejando algo, o alguna referencia está mal puesta, o no se pueden comunicar (aunque no lo creo).
Si alguien ppuede hecharme un cable se lo agradeceré.

Muchas gracias
Palacio

pd.:Creo que el trozo de código que he adjuntado es suficiente, si alguien cree que necesita alguna función más que lo diga y se la adjunto sin problemas.