好吧,这让我非常生气。我已经在整个互联网上关注了将近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