消息服务(Message Service )提供发布(publish)/订阅(subscribe)机制允许Flex 应用程序发布消息、订阅消息终端(messaging destination),从而实现实时数据的推和协作。
一、Message Service
Message Service 提供发布(publish)/订阅(subscribe)机制允许Flex 应用程序发布消息、订阅消息终端(messaging destination),从而实现数据的实时推动和协作传送。
消息终端在messaging-config.xml配置,其中频道(channel)是其关键元素,它用来实现客户端和服务器端交换数据。使用BlazeDS,消息终端通常用作streaming频道或者polling频道。
使用streaming频道,服务器端会一直响应HTTP请求直到该频道连接被关闭,它允许服务器向客户端不断传送大量的数据。因为HTTP连接是独一无二的,这实现数据的双向传送,每个streaming AMF或者HTTP频道事实上需要两个浏览器 HTTP连接, 一个连接需要不断处理服务器端与频道紧密相关的客户端的响应。另外需要一个短暂连接,只有当数据需要传送到服务器时,它才脱离浏览器连接池;当短暂连接不再需要时,它立即被释放回浏览器连接池。
polling频道可以通过简单的时间间隔或者使用服务器等待来配置,如果数据不马上可用 (长轮循)的话。另外,每次轮循响应完成请求。默认下浏览器HTTP 1.1的连接是持续的,浏览器轮循已有的连接,发送并发的轮循请求,以此来减轻轮循的开销。
当需要准实时通信时,streaming 频道是最好选择。
二、IE 与 Firefox浏览器下的不同
浏览器对每个session都有连接数限制。不同的浏览器,连接最大数以及对session的处理方式都不一样。
IE中每个session的最大连接数为2。 但如果从开始菜单或快捷方式打开多个IE实例,每个IE实例开启不同的进程并拥有各自session。另外,如果我们通过CTRL+N 开启对已有的IE实例一个新的IE窗口,该窗口将与创建它的IE实例共用一个session 。也就是说,如果程序实例开启不同的进程,我们可以通过HTTP streaming建立不限量应用取得服务器端数据;如果通过CTRL+N开启多个窗口,每个session最多建立2个连接。
Firefox中每个session最多建立8个连接。如果从开始菜单或快捷方式打开多个Firefox实例,所有实例开启使用同一进程并共用一个session。既然浏览器对普通的HTTP请求通常只需要一个连接, 理论上我们可以最多可以建立7个HTTP streaming连接。
三、messaging-config.xml
另外,如果每个session到达最大连接数,使用streaming channel连接到服务器的下一次尝试将失败:Endpoint with id 'my-streaming-amf' cannot grant streaming connection to FlexClient with id 'D640B86F-6B1D-92DF-8288-1B737A371AFE' because max-streaming-connections-per-session limit of '1' has been reached。不过,BlazeDS提供一种优雅的退后机制来处理这种情况:客户端始终会尝试使用频道表(messaging-config.xml中为服务终端定义)中的第一个频道来连接。如果该连接失败, 客户端将自动退后到频道表中的下一频道。在本实例中,我们为所有的服务终端定义了如下默认的ChannelSet:
<default-channels>
<channel ref="my-streaming-amf"/>
<channel ref="my-polling-amf"/>
</default-channels>
也就是说,客户端应用会首先尝试使用streaming channel连接,如果连接失败会使用polling channel。
客户端代码和使用LCDS差不多,比较简单,基本上都会使用Producer来发布聊天内容,使用Consumer来订阅聊天内容,从而实现实时聊天。另外本应用有简单的登入登出功能。
分享到:
相关推荐
BlazeDS 入门:HTTP Service BlazeDS 是 Adobe 提供的一款基于 Java 的中间件,能够帮助开发者快速构建基于 Flex 的 Rich Internet Application(RIA)。BlazeDS 入门:HTTP Service 是 BlazeDS 的一个重要组件,...
### Flex Blazeds入门教程详解 #### 一、引言 Flex Blazeds入门教程,由刘铭朝撰写于2008年3月21日,旨在解决开发者在搭建Flex与LCDS(Flex Data Services)工程时遇到的常见问题。这篇教程不仅详细介绍了创建项目...
### Blazeds入门教程知识点详解 #### 一、引言 Blazeds是一个由Adobe官方推出的开源数据服务中间件,其前身是LiveCycle Data Services(LCDS),也称为Flex Data Services(FDS)。Blazeds简化了Flex应用程序与...
这个入门例子是针对初学者设计的,旨在展示如何使用Flex与BlazDS进行基本的数据交换。在这个实例中,我们关注的是一个简单的方法,该方法接收在Flex前端输入的字符串,并在Java后端返回一个处理后的字符串。 首先,...
### BlazeDS入门教程详解 #### 一、BlazeDS简介 BlazeDS是一个由Adobe公司提供的开源技术,它主要用于实现在服务器端的Java应用程序与客户端的Flex应用之间的远程调用和消息传递。BlazeDS的强大之处在于它可以轻松...
Blazeds Message Filter是Adobe Flex和 BlazeDS框架中的一个重要组件,它允许开发人员对服务器到客户端或客户端到服务器的消息进行过滤和处理。BlazeDS是一个开源的服务器端技术,用于实时数据推送,使得Web应用程序...
### BlazeDS War包及Flex结合BlazeDS的入门程序 #### 一、BlazeDS简介与功能 BlazeDS是一款由Adobe开发的开源服务器端软件,主要用来支持远程调用和消息传递服务。它能够实现Java应用服务器和Flex客户端之间的通信...
### FLEX与BlazeDS原理概述 #### 一、FLEX与BlazeDS简介 - **FLEX**:Adobe Flex是一种用于构建跨平台桌面应用程序、移动应用和Web应用的开源框架。它支持丰富的用户界面(UI)组件和数据可视化功能,能够创建高度...
BlazeDS是Flex和Java之间的桥梁,它提供了AMF(Action Message Format)协议,这是一种高效的数据序列化格式,使得Flex客户端可以与Java后端进行低延迟的数据交换。BlazeDS还支持Remoting和LiveCycle Data Services...
BlazeDS通信到Java的PureMVC——Flex框架,BlazeDS的服务器配置比较麻烦,这里使用的是直接下载blazeds_turnkey_3-0-0-544.zip中的tomcat BlazeDS模板路径为: blazeds_turnkey_3-0-0-544.zip解压后路径\tomcat\...
6. **配置与部署**:BlazeDS可以通过配置文件来定义服务端的通道(channels)、消息代理(message brokers)和数据源。它可以部署在多种应用服务器上,如Tomcat、Jetty等。 7. **开发工具支持**:BlazeDS与Adobe ...
Blazeds还支持其他高级功能,如MessageBroker(消息代理)用于发布/订阅模式的消息传递,以及LiveCycle Data Services的集成,提供更全面的企业级服务。在实际项目中,可以根据需求灵活运用这些特性。
Blazeds通过AMF(Action Message Format)协议实现了高效的数据传输。 2. **AMF协议**: AMF是一种二进制数据格式,专为Flash/Flex应用设计,用于在网络上传输数据。它比JSON或XML更高效,因为它减少了数据编码和...
2. **Message Brokering服务**:Blazeds支持发布/订阅模型的消息传递,使得多个Flex客户端可以订阅后端事件,实现实时数据同步。它使用了HTTP长轮询、HTTP流和WebSocket等技术。 3. **LiveCycle Data Services**:...
通过使用BlazeDS的MessageBroker,可以实现发布/订阅模式的消息传递,这对于构建实时应用非常有用。 - **LiveCycle Data Services集成**:尽管BlazeDS本身是一个开源项目,但它与Adobe的商业产品LiveCycle Data ...
但通过`SpringRemotingDestinationBootstrapService`,我们可以自动导出带有@Service注解且名称以“FlexService”结尾的Spring Bean,将其转换为BlazeDS的RemoteObject。 3. **配置属性**: `...
BlazeDS是Adobe提供的一种开源服务器端组件,它为Flex客户端提供了与Java应用服务器交互的能力,通过AMF(Action Message Format)协议实现高效的数据传输。 **Spring框架** 是Java开发中的一个核心框架,主要用于...
Blazeds允许Flex客户端通过AMF(Action Message Format)高效地与Java应用程序进行通信。 3. **Java与Flex的结合**: Java作为后端服务器语言,常用于处理业务逻辑和数据存储。通过Blazeds,Flex可以轻松调用Java...
BlazeDS是Flex与Java后端之间的桥梁,它支持AMF(Action Message Format)协议,该协议能够高效地传输数据,实现低延迟的双向通信。BlazeDS提供了消息服务、Remoting服务、LiveCycle Data Services等功能,使得Flex...