Flex BlazeDS 通信解析

 BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) Web 消息传递 (messaging) 技术,以LGPLLesser GNU Public License)公共许可证书发布。它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。在Java应用服务器上,它以servlet的形式存在, 因此可以在任何标准Java网络应用中运用它。

blazeDS是一套面向actionscript的前后台通信框架。

在服务器端,blazeDSservlet的方式存在于java应用服务器上。它默认提供3中服务,远程调用(在remoting-config.xml中配置)、访问代理(proxy-config.xml)、消息服务(messaging-config.xml),同时框架允许你添加自定义的服务(在services-config.xml中配置)。

在客户端,blazeDS提供了RemoteObjectHttpServcieWebServiceProductComsumer等组件来提供访问服务器端数据的能力,其中RemoteObjectProductComsumer是以amf协议来交换数据的,而HttpServcieWebService则采用的是比较通用的访问协议,可以用来访问非blazeDS服务器(即普通的web服务器)。

那么服务端和客户端如何关联起来呢?答案是通过destinationchannelendpoint

首先要在服务器端定义需要的destination,根据destination所属的service类别不同,应该把destination定义在不同的配置文件里(remoting-config.xmlproxy-config.xmlmessaging-config.xml)。同时为destination指定channel(如果不指定,就会使用默认的channel)。

在客户端的代码中只需要为你的组件(比如RemoteObject)指定destination和取得数据后的回调函数就行了,剩下来的就是编译器的事情了。Flex为你隐藏了channel的调用。所以你需要写的代码很少。

服务端的结构图如下:

 

客户端的结构图如下:

 



 

 

如果做个helloworld的例子,网上很多,blazeDS自带的examples也很典型。这里就不累诉了。相信有一定经验的初学者都能很快上手。需要强调的是,blazseDS客户端工程的特殊之处是它的编译依赖于服务端程序的4个配置文件,就是之前其提过的services-config.xml remoting-config.xmlproxy-config.xmlmessaging-config.xml(都位于服务端工程的WEB-INF\flex目录下),同时编译参数Context Root必须设置正确。编译错了,程序再对也出不来结果的,呵呵。

介绍了blazeDS的结构体系,下面来分析下我们能用blazeDS来做什么呢?

这个就要中blazeDS所提供的3种服务来分析了。

1.              远程调用。其实框架在这里起到的作用和struts等服务端的框架差不多,都是任务分配的功能,只不过blazeDS支持客户端直接对象调用,一方面提高了数据传输速度,另一方面省了在客户端写url,但是它需要编译客户端的时候关联服务端配置文件,烦!综合考虑优缺点,这个功能还是值得使用的。

2.              访问代理。能够提供权限控制,和跨域访问的能力。这个任何web服务器都能做到(加httpClient转发么),没什么特殊之处。

3.              消息服务。这个正式blazeDS 牛的地方,它能向普通的浏览器客户端页面推送数据,而不需要建立socket链接。这个应用在很多地方都有用到,比如股票信息即时刷新,在线聊天等等需要实时数据推送的场景。

我的想法是,如果是一个全新的完整的flash应用项目,那么用blazeDS的框架是一个不错的选择。如果是要在原有的javaWeb系统上增加功能的话,还是仅仅用一下blazeDS的消息推送服务就可以了,毕竟用flex直接访问http也很方便。

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值