客户端和服务器端的方法相互调用比较重要,在线列表基本上全是用这种方式实现的,当然也有使用RemoteSharedObject来实现的,但本人不太喜欢用RemoteSharedObject,只是用RemoteSharedObject来进行广播等操作。
1.编辑第二篇(抛弃LCDS和FMS,在tomcat下开发Red5应用(第二篇)-建立新的Red5应用)中的Application.java:
package red5.example.red5server;
import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IConnection;
import org.red5.server.api.Red5;
import org.red5.server.api.service.IServiceCapableConnection;
public class Application extends ApplicationAdapter {
private String userName;
//客户端调用的方法
public String callFromClient(String userName) {
this.userName = userName;
callClient();
return "Hello:"+userName;
}
//服务器端调用客户端的方法
public void callClient() {
IConnection conn=Red5.getConnectionLocal();
if (conn instanceof IServiceCapableConnection) {
IServiceCapableConnection sc = (IServiceCapableConnection) conn;
sc.invoke("callFromServer", new Object[]{"hi,"+userName+" this message from server"});
}
}
}
PS:记得将编译好的class文件放入webapps\ROOT\WEB-INF\classes。
2.编辑第二篇(抛弃LCDS和FMS,在tomcat下开发Red5应用(第二篇)-建立新的Red5应用)中的red5client001.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
import flash.net.*;
import flash.events.*;
import flash.utils.*;
import mx.controls.*;
private var nc:NetConnection;
public function init():void {
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, netSecurityError);
nc.connect("rtmp://localhost/red5Server");
nc.client = this;
}
private function netStatus(event:NetStatusEvent):void {
var connStatus:String = event.info.code;
//Alert.show(connStatus);
if(connStatus == "NetConnection.Connect.Success") {
nc.call("callFromClient",new Responder(callServerMethodResult,callServerMethodFault),Math.random().toString());
}
}
private function netSecurityError(event:SecurityErrorEvent):void {
Alert.show("netSecurityError: " + event);
}
public function callServerMethodResult(re:String):void {
Alert.show("客户端调用服务器端方法成功,返回结果:"+re);
}
public function callServerMethodFault(fo:Object):void {
Alert.show("客户端调用服务器端方法失败:"+fo.toString());
}
public function callFromServer(re:Object):void {
Alert.show("服务器端调用客户端方法,传递的参数为:"+re.toString());
}
]]>
</mx:Script>
</mx:Application>
将编译好的swf拷贝到webapps\red5Server目录下。
3.重新启动tomcat 运行浏览器,在地址栏输入http://localhost:8080/red5Server/red5client001.html 看到弹出窗口了吧。
客户端和服务器端方法相互调用就这么简单,实际上原有的基于FMS开发的Flex客户端代码修改量是非常小的。在下一篇将讲解客户端和服务器端方法调用中的参数传递。
分享到:
相关推荐
NULL 博文链接:https://tj007-bo.iteye.com/blog/299376
NULL 博文链接:https://tj007-bo.iteye.com/blog/299375
tomcat lcds 服务器 配置 学习笔记
本教程通过图文介绍和对一些关键性的地方进行解释,让大家了解如何新建Flex的LCDS工程,并利用工具快速整合和部署J2EE项目和LCDS项目,掌握了简单的请求RemoteObject和配置的方法,初步掌握LCDS的应用之一。
在发布到web应用服务器后(比如tomcat、j4run等)就会被解压成一个工程。当然,在FB3里,这个发布的过程会更加的简单。 Blazeds:不用安装,下载了就OK,要的是里面的blazeds.war,与LCDS的flex.war一样。 2. 安装...
本教程通过图文介绍和对一些关键性的地方进行解释,让大家了解如何新建Flex的LCDS工程,并利用工具快速整合和部署J2EE项目和LCDS项目,掌握了简单的请求RemoteObject和配置的方法,初步掌握LCDS的应用之一。...
从官方安装包lcds31-win.exe中提取的lcds31.war。
Adobe公司LCDS注册机,适用于LCDS早期版本,学习交流之用
LiveCycle Data Service, 基于java(也有ColdFusion版的)后端的数据服务工程,功能包括映射Java对象到Flex对象(包括调用Java类的方法)、RTMP(Real Time Message Protocol)、代理、服务端生成PDF等等功能....
Flex LCDS flex.war就是lcds.war Flex+LCDS使用的war包
LiveCycle ES Developer's Guide--lcds26_devguide_040908
此文档主要描述了Adobe公司的LCDS架构,主要阐述了应用原理
lcds是用于来连接java数据库的哦!使用Flex 3 plugin+Eclipse+lcds 欢迎大家下载
lcds.war lcds.war lcds.war lcds.war lcds.war lcds.war lcds.war lcds.war
lcds 2.6 es 的官方开发指南,里面有详细的部署和开发说明,不过是英文版的,看起来有点吃力。
Flash Builder4 下 LCDS + JAVA 配置方法详解 Flash Builder 4正式版+JAVA+LCDS ES2(LCDS3) Flash Builder 4 正式版已经出来,将一些遇到的问题总结出来。并已经解决,希望对大家有帮助。
cairngorm与lcds结合应用的最小工程包,适合研究cairngorm 与lcds的用户
Flex + LCDS +JAVA入门教程,描述了flex通过LCDS与java进行
本教程通过图文介绍和对一些关键性的地方进行解释,让大家了解如何新建Flex的LCDS工程,并利用工具快速整合和部署J2EE项目和LCDS项目,掌握了简单的请求RemoteObject和配置的方法,初步掌握LCDS的应用之一。
flex需要用到的war包 flex.war lcds.war