好吧,這讓我非常生氣。我已經在整個互聯網上關注了將近8篇教程,最終,我的Red5服務器實例正常運行。對我好!但是,當我打電話給我的Red5應用我的Java方法從我的AS3的應用程序,在Eclipse中的「控制檯」窗口中,我得到這個錯誤:無法通過AS3在red5服務器上調用方法Flash CS6
[ERROR] [NioProcessor-1] org.red5.server.service.ServiceInvoker - Method getTheName with parameters [] not found in [email protected]
這是我的Application.java文件。
package org.red5.core;
import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IConnection;
import org.red5.server.api.IScope;
import org.red5.server.api.service.ServiceUtils;
/**
* Sample application that uses the client manager.
*
* @author The Red5 Project ([email protected])
*/
public class Application extends ApplicationAdapter {
/** {@inheritDoc} */
@Override
public boolean connect(IConnection conn, IScope scope, Object[] params) {
return true;
}
/** {@inheritDoc} */
@Override
public void disconnect(IConnection conn, IScope scope) {
super.disconnect(conn, scope);
}
public String getTheName() { return "MyName!"; }
}
這是我的AS3代碼。我只是把它放在時間軸上。
var nc:NetConnection = new NetConnection();
nc.connect("http://localhost/Mintium/RoomHere", "SomeUsernameHere");
nc.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
nc.objectEncoding = ObjectEncoding.AMF0;
function onNetStatus(e:NetStatusEvent):void
{
switch (e.info.code)
{
case "NetConnection.Connect.Success" :
trace("connected");
nc.call("getTheName", new Responder(getName_result, getName_error));
break;
}
}
function getName_result(res:Object):void { append("Name : " + res.toString()); }
function getName_error(res:Object):void { append(res.toString()); }
它已經一個星期了,我一直試圖弄清楚,我的日期是下個月。如果這些東西沒有解決,我會失敗的。請幫我解決我的問題。非常感謝你。
不確定,但爲什麼你使用AMF0作爲對象編碼。Red5還支持AMF3,這是您在使用ActionScript 3時應該更喜歡的編碼。AMF0對象編碼更爲過時,應該僅用於ActionScript 1.0和2.0中較舊的東西 – 2013-03-04 23:02:48