客户端代码
package test
{
import flash.display.Sprite;
import flash.events.NetStatusEvent;
import flash.net.NetConnection;
import flash.net.ObjectEncoding;
import flash.net.Responder;
public class TestCon extends Sprite{
private var nc:NetConnection;
public function TestCon():void{
nc = new NetConnection( );
nc.objectEncoding = ObjectEncoding.AMF0;
nc.addEventListener( NetStatusEvent.NET_STATUS , netStatus );
/*
* 连接服务端,连接成功后方可调用服务端java代码
* 参数true可以不写。
*/
nc.connect("rtmp://localhost/red5_server",true);
/*
* 存储服务器的返回结果 ,如果返回结果没用问题调用result方法,
* 否则调用status方法
*/
var response:Responder = new Responder(result,status);
/*
* 调用服务端的callme方法,并把参数luqinglong,123456两个参数传过去
* 把服务端返回结果存放在response对象当中。
* 注意:服务端callme的参数个数要和此一一对应, 应该为
* public String callme(Stirng username,String password);否则回出错)
*/
nc.call("callme",response,"luqinglong","123456");
}
/*
* 连接上服务器,做其他操作的发生的错误。比如参数传的有问题。
*/
private function status(error:Object):void
{
trace("连接结果错误"+error);
}
/*
* 打印返回结果,一定要有个参数re,否则报错,
* 现在只试过返回String格式的
* 返回xml和复杂数据结构还在研究当中
*/
private function result(returnobj:Object):void{
trace("服务端返回结果为:....."+returnobj);
}
/*
* 网络连接错误,根本就没连上
*/
private function netStatus (event:NetStatusEvent):void{
trace( "连接信息........\n"+event.info.code);
if (event.info.code == "NetConnection.Connect.Rejected" ){
trace( event.info.application );
}
}
}
}
服务端代码
package test;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IConnection;
public class TestCon extends ApplicationAdapter{
private static final Log log = LogFactory.getLog(TestCon.class );
public TestCon(){
}
public String callme(String username,String password){
String info = "服务端接收到你的调用请求,";
info+= "你传过来的参数如下";
info+= "用户名:"+username ;
info+= "密码是:"+password ;
return info ;
}
public boolean appStart(){
log.info( "Red5First.appStart" );
return true;
}
public void appStop(){
log.info( "Red5First.appStop" );
}
public boolean appConnect(IConnection conn , Object[] params){
log.info( "Red5First.appConnect " + conn.getClient().getId() );
return true;
}
public void appDisconnect( IConnection conn , Object[] params ){
log.info( "Red5First.appDisconnect " + conn.getClient().getId() );
}
}
本文介绍了一个使用Flash客户端调用Java服务器端代码的具体案例。客户端通过NetConnection连接到服务器,并调用服务器端的方法,传递参数并接收返回结果。
1501

被折叠的 条评论
为什么被折叠?



