- 浏览: 262564 次
- 性别:
- 来自: 西安
-
文章分类
最新评论
-
qq820456878:
大神,您好,看了您的文章,深知小弟难望其项背啊。有一点不明白的 ...
Flex中捕获浏览器的前进、后退、刷新、关闭事件 -
skydove:
<div class="quote_title ...
RED5的Eclipse插件安装 -
JavaCFW:
JavaCFW 写道
FLEX利用FLASH MEDIA SERVER进行视频的在线录制和回放 -
JavaCFW:
FLEX利用FLASH MEDIA SERVER进行视频的在线录制和回放 -
daveyking:
客户端代码不太懂,是在哪写的?flash actionscri ...
抛弃LCDS和FMS,在tomcat下开发Red5应用(第三篇)-ApplicationAdapte
在上一篇演示了客户端和服务器端方法调用,其实已经一并演示了参数传递的过程,但都是基本数据类型(ps:AS3的String,int,Number,Boolean,Array,Object对应到red5这边是String,int,double,boolean,java.utils.List,java.utils.Map,参考【red5学习2—参数传递】和 AS3与Red5之间的参数传递
),实际应用中传递的复杂数据类型应该更多,那么我们对上一篇的代码进行略微的修改,从服务器端发送一个自定义的java对象到客户端(参考中的两个例子实际上已经讲述的很清楚了):
1.添加一个自定义类User.java:
package red5.example.red5server; public class User { private String userId; private String userName; private String sex; public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } }
2.修改上一篇的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; User user = new User(); user.setUserId("userId"); user.setUserName("userName"); user.setSex("女"); sc.invoke("callFromServer", new Object[]{user}); } } }
3.同样,稍微修改客户端代码:
<?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("服务器端调用客户端方法,传递的参数为一个对象:\nuserId:"+re.userId+"\nuserName:"+re.userName+"\nsex:"+re.sex); } ]]> </mx:Script> </mx:Application>
运行客户端,可以看到从服务器端传递过来的实例已经能被客户端所识别了。
本例子没有像上面两个参考中那样详细,是因为我认为复杂数据类型的传递在RemoteObject中使用更好,而NetConnection上进行服务器端和客户端方法相互调用更适合一些简单的数据传递(可能是原来用FMS的时候基于NetConnection进行参数传递有些难度造成的,呵呵,毕竟FMS端是AS2的语法)。
在下一篇中将介绍如何在Red5中使用RemoteObject,因为很多原来基于LCDS的应用大部分数据操作都是用RemoteObject来实现的,想平滑过渡到Red5上,尽量不要修改Flex端的代码最好。
发表评论
-
red5加大内存的配置方式
2010-11-18 15:03 0set JAVA_OPTS=%LOGGING_OPTS% %S ... -
RED5 0.9 下载
2009-07-23 10:59 1863http://build.xuggle.com/view/St ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第八篇)-音/视频发布和订阅
2009-04-30 20:49 1959http://www.dreamtech.com.cn/SWF ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第七篇)-RSO
2009-04-29 16:28 1544点击链接查看吧,不能插入了~~ http://www.dre ... -
配合V H Screen Capture Driver共享屏幕
2009-04-10 23:40 0VH Screen Capture Driver -
RED5 v0.8 RC2 如何建立新的应用程序
2009-02-11 22:38 0参照:Chapter 11. Create new appli ... -
red5 v8.0 rc2 发布了
2009-02-11 17:51 1222http://code.google.com/p/red5/ -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第六篇)-如何使用RemoteObject
2009-01-08 14:32 4238找到这个资料Calling Java methods from ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第四篇)-客户端和服务器端的方法互相调用
2009-01-05 17:06 3718客户端和服务器端的方法相互调用比较重要,在线列表基本上全是用这 ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第三篇)-ApplicationAdapte
2009-01-05 10:02 5638一个完整的应用过程包括(1)应用程序启动。 (2)客户端建立连 ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第二篇)-建立新的Red5应用
2009-01-04 09:56 8260网上找的文章大部分是介绍在win下安装版的Red5下新建应用程 ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第一篇)-将Red5部署到tomcat中
2009-01-04 09:55 8718有两种方法可以实现,第一种方法要覆盖tomcat的ROOT,就 ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(引子)
2009-01-04 09:52 3850使用LCDS其实主要用到了 ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第十二篇)-电子白板桌面共享
2008-12-22 16:16 0站位 http://vworkers.com/flex3/fv ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第十一篇)-电子白板协同浏览
2008-12-22 16:15 0站位 -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第十篇)-电子白板文档共享浏览
2008-12-22 15:58 0前期知识准备:(任意文档转换为SWF载入到Flex中并控制) ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第九篇)-电子白板画图篇
2008-12-18 22:24 0电子白板应该具有的功能:1.画图。2.多类型文档共享查看。3. ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第八篇)-音/视频发布和订阅
2008-12-18 16:12 0本篇介绍音频、视频的发布和订阅(相当重要的类NetStream ... -
抛弃LCDS和FMS,在tomcat下开发Red5应用(第七篇)-RSO
2008-12-16 15:45 0标题不能写那么长~~~哈哈,RSO就是RemoteShared ... -
RED5的Eclipse插件安装
2008-11-19 14:07 4022这里有详细说明:http://jira.red5.org/co ...
相关推荐
标题中的“抛弃LCDS和FMS,在tomcat下开发Red5应用(第十一篇)-电子白板协同浏览”表明本文将介绍如何在不使用LCDS(LiveCycle Data Services)和FMS(Flash Media Server)的情况下,利用Tomcat服务器来开发一个基于...
NULL 博文链接:https://tj007-bo.iteye.com/blog/299376
在IT领域,特别是Java开发和Flex应用开发中,配置LCDS(LiveCycle Data Services)与Tomcat服务器是一项关键技能,它能确保应用程序高效、稳定地运行。以下是对LCDS与Tomcat服务器配置的相关知识点的详细解析: ###...
RemoteObject允许你在Flex客户端调用Java服务器端的方法,将数据传递到服务器并接收返回的结果。配置RemoteObject时,需要指定服务端的接口和方法,以及数据转换规则。 例如,你可以在Flex代码中定义一个...
首先,你需要准备相应的开发环境,包括Eclipse 3.3、FlexBuilder3插件、MyEclipse 6.0、LCDS软件以及Tomcat 5或更高版本的Web服务器。MyEclipse是一个强大的Java开发工具,用于管理和部署J2EE项目。FlexBuilder3则...
LCDS提供了与Flex客户端之间的高效通信机制,包括Java对象到Flex对象的映射、实时消息协议RTMP、Java类方法调用、代理服务以及服务器端PDF生成等功能。虽然LCDS是付费产品,但免费版本也可使用,只是可能缺少对多CPU...
它允许Flex客户端直接调用Java类方法,实现远程对象(RemoteObject)通信,提供实时消息传递协议(RTMP)支持,以及代理服务和服务器端PDF生成。LCDS虽然不是免费软件,但单CPU版本可以免费试用。 **3. Java简述** ...
RemoteObject允许你在Flex客户端调用Java服务器端的方法,实现数据交换。配置RemoteObject涉及到定义服务接口、映射Java类到Flex对象,以及设置服务端和客户端的配置文件。 在实践中,你还需要理解如何将Java编译后...
LCDS(原名Flex Data Service)是Adobe的服务器端产品,它为Flex应用程序提供数据服务,包括Java对象与Flex对象的映射、实时消息协议(RTMP)、数据代理以及服务器端PDF生成等。LCDS允许Flex客户端通过RemoteObject...
接下来,你将学习如何配置RemoteObject,通过它Flex客户端可以调用Java服务器上的方法。在Flex项目中定义RemoteObject,指定服务端的命名空间和服务接口,然后在ActionScript中调用这些接口,实现前后端数据交换。 ...
LCDS的核心特点是其基于消息的框架,它在客户端通过通道(channels)来封装与服务器的连接行为。 LCDS客户端架构包含了几个关键的Flex组件,如RemoteObject、HTTPService、WebService、Producer、Consumer和Data...
6. 客户端应用开发 BlazeDS 的客户端通常使用 Flex 或 AIR 开发,利用 RemoteObject、HTTPService、WebService、Producer 和 Consumer 等组件与服务器通信。此外,也可以使用 HTML、JavaScript 结合 Ajax 客户端库与...
此外,LCDS的Remoting服务可以让Flex应用直接调用Java方法,就像调用本地函数一样,降低了开发难度。 在实际开发中,Flex可以通过LCDS与Java的EJB、Spring等框架无缝对接,实现服务的动态发现和调用。同时,LCDS还...
它提供了多种功能,如数据推送、远程过程调用(RPC)、实时数据同步等,使得Flex客户端能够高效地与服务器端Java应用进行通信。LCDS支持AMF(Action Message Format),这是一种高效的二进制数据格式,能快速传输...
- Flex客户端通过myFlex对象调用Java服务器的sayHelloWorld方法,传递txtName.text作为参数。 - BlazeDS接收到请求后,将ActionScript方法调用转换为Java方法调用,转发给HelloWorldJava。 - Java服务器执行...
在IT行业中,Flex和Java的整合是构建富互联网应用程序(RIA)的重要技术组合。本案例主要探讨如何使用BlazeDS和LCDS...这种整合方法在现代企业应用中十分常见,尤其是在需要高度交互性和实时数据更新的场景下。
LCDS(LiveCycle Data Services)是Adobe提供的一个服务器端组件,用于增强Flex与Java后端系统的交互能力,特别适合于J2EE平台上的数据集成和实时通信。这个测试工程将展示如何使用Flex和LCDS来实现Flex客户端与Java...
- **RTMP (Real-Time Messaging Protocol)**:这是一种实时消息协议,用于在客户端和服务器之间建立高效的双向通信通道。 - **代理**:LCDS提供了代理机制,用于处理客户端和服务器之间的数据交换。 - **服务端生成...