2012-10-29 37 views
1

我正在使用red5和自定義flex客戶端使用AS3進行一些測試,這與使用AS2的Flash上​​的簡單廣播器類似。但我添加了一個功能服務器使用flex獲取列表netConnection.call方法

public List<String> listaCanales(){ 
     List<String> canales = new ArrayList<String>(); 
     canales.add("Canal 1"); 
     canales.add("Canal 2"); 
     canales.add("Canal 3"); 
     canales.add("Canal 4"); 
     canales.add("Canal x"); 
     return canales; 
    } 

,此功能只是測試,這個想法是以檢索所有我對RED5創建渠道,渠道範圍最終。

我創建了一個小函數調用插件之前,它的工作原理

public int add(int a, int b){ 
     return a+b; 
    } 

這裏是我叫add函數

connection = new NetConnection(); 
connection.connect("rtmp://"+servidor+"/"+red5App); 
connection.addEventListener(NetStatusEvent.NET_STATUS, onConnected); 
connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); 
var nr:Responder = new Responder(netResponderHandler); 
connection.call("add", nr,5,6); 

,並將其與附加功能的作品,但是當我嘗試listaCanales函數就像netResponder處理程序不起作用。

connection = new NetConnection(); 
connection.connect("rtmp://"+servidor+"/"+red5App); 
connection.addEventListener(NetStatusEvent.NET_STATUS, onConnected); 
connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); 
var nr:Responder = new Responder(netResponderHandler); 
connection.call("listaCanales", nr,null); 

connection.call("listaCanales", nr); 

這裏是我的netResponderHandler

protected function netResponderHandler(serverResult:Object):void 
{ 
    registros("Something happened"); 
    //registros("The result is " + serverResult); 
} 
+0

發表listaCanales函數 –

回答

0

當你說我創建了一個小功能XZY我asume您的測試功能是作爲AA級的「web.handler」。所以這個函數在一個擴展了Red5的ApplicationAdapter的類中。

如果Red5的服務器無法處理的調用(因爲它無法將請求映射到ApplicationAdapter特定的方法),那麼你會看到無論是在RED5或錯誤日誌文件中的一些日誌條目。

您是否檢查過這些日誌?

當您將conf/logback.xml中的調試級別從INFO增加到某個更高級別時,您能否看到請求?

另外我想知道你的AS腳本,實際上你應該等待方法調用,直到你收到連接成功的方法。不只是調用一行中的所有方法。你必須編寫這個事件驅動。 因此,在「onconnect」處理程序中,檢查=>連接成功。然後你繼續用你的程序來調用/測試你的方法。

塞巴斯蒂安

相關問題