客户端和服务器端的方法相互调用比较重要,在线列表基本上全是用这种方式实现的,当然也有使用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客户端代码修改量是非常小的。在下一篇将讲解客户端和服务器端方法调用中的参数传递。
分享到:
相关推荐
标题中的“抛弃LCDS和FMS,在tomcat下开发Red5应用(第十一篇)-电子白板协同浏览”表明本文将介绍如何在不使用LCDS(LiveCycle Data Services)和FMS(Flash Media Server)的情况下,利用Tomcat服务器来开发一个基于...
NULL 博文链接:https://tj007-bo.iteye.com/blog/299376
RemoteObject允许你在Flex客户端调用Java服务器端的方法,将数据传递到服务器并接收返回的结果。配置RemoteObject时,需要指定服务端的接口和方法,以及数据转换规则。 例如,你可以在Flex代码中定义一个...
LCDS提供了与Flex客户端之间的高效通信机制,包括Java对象到Flex对象的映射、实时消息协议RTMP、Java类方法调用、代理服务以及服务器端PDF生成等功能。虽然LCDS是付费产品,但免费版本也可使用,只是可能缺少对多CPU...
首先,你需要准备相应的开发环境,包括Eclipse 3.3、FlexBuilder3插件、MyEclipse 6.0、LCDS软件以及Tomcat 5或更高版本的Web服务器。MyEclipse是一个强大的Java开发工具,用于管理和部署J2EE项目。FlexBuilder3则...
4. Tomcat 5或更高版本:作为Web应用服务器运行Flex项目。 入门教程: 创建Flex LCDS项目: 1. 打开FlexBuilder3,选择"File -> new -> Flex Project"。 2. 在向导界面1中,选择"Combined Flex and J2EE project...
RemoteObject允许你在Flex客户端调用Java服务器端的方法,实现数据交换。配置RemoteObject涉及到定义服务接口、映射Java类到Flex对象,以及设置服务端和客户端的配置文件。 在实践中,你还需要理解如何将Java编译后...
它允许Flex客户端直接调用Java类方法,实现远程对象(RemoteObject)通信,提供实时消息传递协议(RTMP)支持,以及代理服务和服务器端PDF生成。LCDS虽然不是免费软件,但单CPU版本可以免费试用。 **3. Java简述** ...
它提供了多种功能,如数据推送、远程过程调用(RPC)、实时数据同步等,使得Flex客户端能够高效地与服务器端Java应用进行通信。LCDS支持AMF(Action Message Format),这是一种高效的二进制数据格式,能快速传输...
此外,LCDS的Remoting服务可以让Flex应用直接调用Java方法,就像调用本地函数一样,降低了开发难度。 在实际开发中,Flex可以通过LCDS与Java的EJB、Spring等框架无缝对接,实现服务的动态发现和调用。同时,LCDS还...
Flex LCDs.war 文件是基于Adobe Flex和Java Enterprise Edition (J2EE) 平台的集成开发工具包,主要用于创建 Rich Internet Applications (RIA)。在本文中,我们将深入探讨Flex、LCD Services、J2EE以及如何将它们...
LCDS的核心特点是其基于消息的框架,它在客户端通过通道(channels)来封装与服务器的连接行为。 LCDS客户端架构包含了几个关键的Flex组件,如RemoteObject、HTTPService、WebService、Producer、Consumer和Data...
在IT行业中,Flex和Java的整合是构建富互联网应用程序(RIA)的重要技术组合。本案例主要探讨如何使用BlazeDS和LCDS...这种整合方法在现代企业应用中十分常见,尤其是在需要高度交互性和实时数据更新的场景下。
5. **LCDS服务配置**:在Java环境中,需要配置LCDS服务,包括在服务器端部署LCDS服务组件,设置数据源和应用程序服务,以及在Flex客户端添加相应的服务引用。 6. **数据绑定和事件处理**:Flex的强项在于其数据绑定...
LCDS(LiveCycle Data Services)是Adobe提供的一个服务器端组件,用于增强Flex与Java后端系统的交互能力,特别适合于J2EE平台上的数据集成和实时通信。这个测试工程将展示如何使用Flex和LCDS来实现Flex客户端与Java...