编辑: 麒麟兔爷 2019-07-04

6 个类里面方法调用发方便性吧) ,服务器调可以用客户端的方法,客户端也可以调用服务器 端的方法.其实上面的例子就是通过方法调用实现的. 1.客户端调用服务器端方法 通过 red5 可以从客户端直接调用服务器上java 编写的方法.调用时指明被调用的方法 名称,如果有返回值则需要指明返回值处理的 responder,如果被调用的方法有参数则需要 传入参数. 可以引用

第一章的例子, conn.call( change change change change ,responder,str.text);

表示客户端调用服务器端的名称为change的方法, 查看 java 中change的定义public public public public String change(String str){//函数体 }发现参数是 java 中String 类型的;

调用时传入的 str.text 是actionscript 中String 类型;

假如 change 有多个入口参数,则可以把参数列在 str.text 后面,并用'

'

, 隔开.返回值由 responder 处理,change 返回值是 String 类型的,要求responder 定义 时的函数 resultFun的入口参数是 String类型. 调用过程中需要注意的是参数类型的对应.具体可以看下列表 表说明假如 java 传给flash 的参数是自定义 Bean类型时,客户端接收到的是Object 类型 当被调用的方法没有返回值时把 responder 设置为 null .具体怎么实现就不再雷述,请 看

第二章的例子. 2.服务器调用客户端方法 不带返回的调用 新建 eclipse 工程 chapter3,并建立包 first ,在包里新建一个类 Application 并继承 ApplicationAdapter.Application 到代码如下: package first;

im port org.red5.server.adapter.Applic ationAdapter;

im port org.red5.server.api.IConnection;

im port org.red5.server.api.service.IServiceCapableConnection;

public class Application extends ApplicationAdapter { @Override public boolean appConnect(IConnection arg0, Object[] arg1) { // TODO Auto-generated m ethod stub callClient(arg0);

return true;

} private void callClient(IConnection conn){ if (conn instanceof IServiceCapableConnection) { IServiceCapableConnection sc = (IServiceCapableConnection) conn;

sc.invoke( clientMethod , new Object[]{ One , 1});

Java actionscript null null int/float Number double Double boolean Boolean String String List Array Map Object Bean Object 作者:周英科 email:[email protected]:543246541

7 } } } 复制 webapps 下的 chapter2 文件夹,并改名为 chapter3,把工程下 class 目录下的 first 拷贝覆盖以前 的first, 把red5-web.properties 中的 /chapter2,替换为 /chapter3.把web.xml 中的 /chapter2替换为/chapter3 重启 red5. 新建 chapter3 客户端项目,chapter.mxml 代码如下: 点击调试程序运行客户端,然后点击连接按钮可以发现输出 接收 One2 表示服务器调用 客户端到方法成功. 服务器端还是只有俩个方法,当客户端连接时服务器调用 appConnect,在appConnect里 调用 callClient.在callClient 中服务器调用客户端的方法 clientMethod,并传给客户端俩个参数,一个字符类型,一个数字类型.只有IServiceCapableConnection 类型的连接才可以调用客户端方法,所以 要先对连接类型进行强制转换. 再看客户端,有三个方法,因为不需要处理连接状态的变化事件所以用个空方法以便简单突出重点.用 户点击按钮连接,调用 clickConnect方法连接服务器.还有一个方法给服务器调用的,这个方法附着在 conn.client 上.因为 ActionScript3 中NetConnection 是封闭的,无法直接把方法附着在其上,但他 的一个属性 client是Object类型的,是动态的. 服务器不但可以调用客户端的方法,还可以把客户端方法处理的值返回给服务器. 作者:周英科 email:[email protected]:543246541

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题