FlexClient, MessageClient, and FlexSession

本文介绍BlazeDS服务端通过FlexClient、MessageClient及FlexSession管理与Flex应用连接的方式。FlexClient代表SWF文件,MessageClient代表订阅组件,而FlexSession则管理连接生命周期。文章还介绍了三者之间的关系及其监听器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务端FlexClient、MessageClient、FlexSession类的实例代表了Flex应用和服务端的连接。你可以使用这些对象管理FLEX应用程序和服务端的同步。

[color=blue][b]FlexClient, MessageClient, and FlexSession objects[/b][/color]
[b]FlexClient[/b]
每一个MXML或者AS的Flex应用都被编译进SWF文件。当SWF文件和Blazeds服务通信的时候,一个flex.message.client.FlexClient对象就被创建,并在服务端代表这个SWF文件。SWF文件和FlexClient实例具有一对一的映射关系。Blazeds服务端为每个FlexClient实例生成一个唯一的标识id。在客户端也有一个单例类mx.message.FlexClient,用于存储这个唯一的FlexClient Id。
[b]MessageClient[/b]
如果某个Flex应用程序含有一个订阅组件(flex.message.Consumer),服务端就会创建一个相应的flex.messaging.MessageClient实例来代表这个订阅者的发布者。每个MessageClient都有一个唯一的clientId,可以自动由Blazeds服务端生成,也可以在调用Consumer.subscribe()方法之前指定这个Consumer.clientId属性。
[b]FlexSession[/b]
FlexSession对象代表在Flex程序和Blazeds服务之间的连接。它的生命周期基于通道和端点使用的底层协议。如果是基于HTTP的通道,例如AMFChannel或者HTTPChannel,在Blazeds服务端就是浏览器范围。如果它连接的端点是一个基于servlet的端点,那么这个HTTP session是基于J2EE HttpSession 对象。
[b]三者之间的关系[/b]
一个FlexObject对象可以拥有多个FlexSession实例,这取决于Flex应用使用的通道数。例如,一个程序使用了一个HTTPChannel,那么在Blazeds服务端一个FlexSession代表这个HTTP session就会被创建。

一个FlexSession也可以拥有一个或多个FlexClient和它关联。例如,a SWF file that uses an
HTTPChannel is opened in two tabs,在BlazeDS服务端2个FlexClient实例被创建(一个SWF文件一个),但是只有一个FlexSession,因为两个tab共享同一个HTTP session。


每个订阅组件都会创建MessageClient。每一个MessageClient都会和一个FlexClient以及一个FlexSession关联。

理解:一个channel对应一个FlexSession,一个SWF文件实例对应一个FlexClient,多个请求会创建多个SWF文件实例,服务端也将创建多个FlexClient对应每一SWF文件,但只有一个FLexSession被创建(假设他们都是用一个HTTPChannel通信)
[b]关于三者的监听器[/b]
BlazeDS服务端提供了下列监听器,来让你根据自己的逻辑来创建、销毁、以及改变三者的状态。
[table]
||FlexClientListener
||FlexClientAttributeListener
||FlexClientBindingListener
||FlexSessionListener
||FlexSessionAttributeListener
||FlexSessionBindingListener
||MessageClientListener
[/table]
参考:《BlazeDS体系结构(三) 》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值