blazeds学习笔记三Message?service
消息服务(Message Service )提供发布(publish)/订阅(subscribe)机制允许Flex 应用程序发布消息、订阅消息终端(messaging destination),从而实现实时数据的推和协作。
消息终端通常用作streaming频道或者polling频道二种方式.
使用streaming频道,服务器端会一直响应HTTP请求直到该频道连接被关闭,它允许服务器向客户端不断传送大量的数据。因为HTTP连接是独一无 二的,这实现数据的双向传送,每个streaming AMF或者HTTP频道事实上需要两个浏览器 HTTP连接, 一个连接需要不断处理服务器端与频道紧密相关的客户端的响应。另外需要一个短暂连接,只有当数据需要传送到服务器时,它才脱离浏览器连接池;当短暂连接不 再需要时,它立即被释放回浏览器连接池。
polling频道可以通过简单的时间间隔或者使用服务器等待来配置,如果数据不马上可用 (长轮循)的话。另外,每次轮循响应完成请求。默认下浏览器HTTP 1.1的连接是持续的,浏览器轮循已有的连接,发送并发的轮循请求,以此来减轻轮循的开销。
当需要准实时通信时,streaming 频道是最好选择
但是浏览器对每个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连接。
所以当Flex同时有其它应用一起使用的话,建议使用长轮询来处理。实战证明长轮询的反应也是很快的。
配置参考如下:
<channel-definition id=”my-long-polling-amf” class=”mx.messaging.channels.AMFChannel”>
<endpoint url=”http://{server.name}:{server.port}/{context.root}/messagebroker/amflongpolling” class=”flex.messaging.endpoints.AMFEndpoint”/>
<properties>
<polling-enabled>true</polling-enabled>
<!– 服务器端的潜伏期,也就是服务器会保持与客户端的连接,直到超时或有新消息返回 –>
<!– 0意味着,服务器不会等待新的消息 –>
<!– 值-1 也就是说,服务器等待下去,直到有新消息–>
<wait-interval-millis>-1</wait-interval-millis>
<!– polling-interval-millis = 0 表示客户端请求服务器端的间隔期, 0 表示没有任何的延迟 –>
<polling-interval-millis>100</polling-interval-millis>
<!– 表示服务器能承受的最大长连接用户数,超过这个限制,新的客户端就会转变为普通的轮询方式 –>
<max-waiting-poll-requests>50</max-waiting-poll-requests>
</properties>
</channel-definition>
分享到:
相关推荐
### 《BlazeDS开发指南》关键知识点概览 #### 一、BlazeDS简介及其功能 BlazeDS,作为Adobe公司的一款免费开源产品,旨在简化企业级应用的开发过程,特别是那些涉及到Flex和Java技术的项目。它源于Adobe的另一款...
本资料包包含了两份重要的资源,分别是《BlazeDS开发指南》学习笔记.doc和blazeds_devguide.pdf,它们将帮助我们深入了解BlazeDS的开发过程。 首先,《BlazeDS开发指南》学习笔记.doc可能包含了作者在研读官方文档...
Flex+BlazeDS+Java通信是构建富互联网应用程序(RIA)的一种常见技术组合,它允许前端的Flex客户端与后端的Java服务器进行实时双向通信。...而`PushTest6`的源代码则可以作为学习和理解这种通信方式的实践案例。
由于本人目前允许上传的资源太小,所以无法上传整个的技术学习笔记(JAVA 五年的工作经验和学习笔记),待以后有机会会分享给大家。 技术体系包括: J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)...
根据给定的文件信息,我们可以提炼出以下关于Flex学习的关键知识点: ### 1. ActionScript 核心概念 #### 1.1 类和对象 (Class and Object) - **定义**:类是对象的抽象,而对象是类的具体实例。一个类定义了对象...
### Flex学习笔记:ActionScript与Flex开发入门 #### 1. ActionScript核心概念 ##### 1.1 类和对象(Class and Object) 类是对象的模板,定义了一组具有相同特性和行为的对象的共同属性和方法。在ActionScript中...
【Flex学习笔记】这篇笔记主要涉及的技术栈是Flex框架,结合BlazeDS、Spring和Hibernate进行Web应用开发。Flex是一种用于构建富互联网应用程序(RIA)的客户端技术,它基于ActionScript和MXML,通常用于创建交互式的...
而文件"〔分享〕AS3学习笔记 - RIACHINA 中国RIA开发者论坛 - Powered by Discuz!NT.htm"可能包含了社区论坛上关于AS3学习的经验分享、示例代码或疑难解答等内容,是深入学习AS3的好资源。对于初学者而言,理解AS3的...
### Flex新手教程_入门级学习笔记 #### ActionScript核心概念 **ActionScript(简称AS)** 是一种面向对象的编程语言,主要用于开发Flex应用程序。掌握AS的基础知识对于学习Flex至关重要。 ##### 类和对象 (Class...
4. "Flex 开发学习笔记2 - 采用的架构 BlazeDS + Spring + Hibernate" 可能是一个开发者的学习笔记,详细记录了构建基于这三个技术的完整应用过程,包括配置、数据绑定和事务管理。 5. "快速搭建Spring BlazeDS ...
J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)/LDAP/C++/Portal/即时通讯/数据建模/UML/UML设计工具(Rose、EA、PD等)/移动办公(Android、Symbian、Wap等技术)/项目管理(敏捷开发等)/软件架构...
马鉴的笔记中提到了几种重要的Flex框架及其特点: 1. **Cairngorm**:Cairngorm是Adobe官方最早且最知名的Flex框架,它强调引入Java框架体系的理论到Flex开发中。Cairngorm遵循MVC(Model-View-Controller)设计...
这本书的学习笔记深入探讨了Flex在企业级应用中的实际运用,涵盖了从基础到高级的各种主题。 1. **Flex SDK和Flash Builder**:Flex SDK是免费的开发工具集,包含了编译Flex应用所需的编译器和库。而Flash Builder...
压缩包内的“JavaSE基础笔记.chm”是一个帮助文件,通常包含详细的教程或参考信息。这里可能是关于Java Standard Edition(JavaSE)的基础知识,因为Flex在早期版本中常常与Java后台配合使用,通过AMF(Action ...
10. **学习资源**:提供的“Flex与Java通讯-1.exe”和“Flex与Java通讯-2.exe”很可能是教学视频,而“flex连接java.TXT”可能是配套的代码示例或笔记,帮助学习者深入理解并实践Flex与Java的交互技术。 以上是关于...
而 `flex ssh conformity.TXT` 文件可能是视频中提到的笔记、配置示例或代码片段,帮助学习者跟随视频进行同步操作。 总的来说,这个视频教程的第二部分深入探讨了Flex、Spring和Hibernate的整合,是提升Java Web...
4. `JavaSource` - 这个目录可能包含了与Java相关的源代码,因为Flex常与Java后端结合使用,通过 BlazeDS 或 LCDS 实现服务器端数据的推送和交互。 通过分析这些文件,我们可以深入学习Flex如何处理数据、与服务器...
新建 文本文档.txt 可能是与这个项目相关的文档,但没有更具体的信息,我们只能猜测它可能是安装指南、API参考、示例代码或者开发过程中的笔记。 使用Flex for JSP,开发者可以: 1. 创建动态、交互性强的用户界面...