`
hwfly
  • 浏览: 27622 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

flex的消息机制

    博客分类:
  • Flex
 
阅读更多
1, 初识消息服务:
相关概念:
消息(message):包括头信息(head)和主题(body),头信息又包括消息标识和路径信息,消息主题包括应用数据
生产者(producer)和消费者(consumer):发信息的应用成为生产者,接收信息的应该称为消费者,,,生产者将消息发送到特定的消息接收点,消息服务会将这条信息转发到适合的消费者
消息接收点(message destination):负责将数据转换为消息,以及将消息转换为消费者可以使用的数据格式的代码
消息通道(message channel):用来将生产者和消费者连接到消息接收点
消息适配器(message adapter):消息适配器是flex消息服务和其他系统的转换器,比如JMS适配器使得基于java的JMS消息应用可以像flex应用一样共享相同的接收点,java应用可以向flex应用分布消息,同时也可以相应flex应用发送的消息

消息流程:
f
flex消息服务支持两种类型的消息:发布/订阅消息和点到点消息

2, 使用flex消息服务
Producer的创建:
1,使用MXML方式:
<mx:Producer id=”user1” destination=”msCenter” acknowledge=”handleAck(event)” fault=”handleFault(event)”/>
MessageEvent-----消息处理,,,,MessageAckEvent------确认事件处理,,,,,MessageFaultEvent--------错误事件处理
2,  使用as方式
private var user1:Producer;
user1 = new Prodicer();
user1.destination = “msCenter”;
user1.addEventListener(MessageAckEvent.ACKNOWLEDGE,handleAck);
user1.addEventListener(MessageFaultEvent.FAULT,handleFault);

创建好之后,就是发送,发送有三个步骤:
1, 创建用于消息发送的mx.messaging.messages.AsyncMessage对象
2, 定义对象的主体内容,即要发送的信息
3, 调用组件的send()方法发送信息
如:var content:AsyncMessage=new AsyncMessage();
content.body=”韩定”;
user1.send();
可以向消息中添加额外信息
如:var content:AsyncMessage=new AsyncMessage();
content.headers = new Array();
content.headers[“user”]=”张三”;
消息发送错误处理:
对于producer组件,有两个事件可以触发发送错误
1, requestTimeout:用户可以设定从消息发出到收到确认消息的时间,超出,则表明消息发送可能发生错误
2, 传输故障:在确认收到消息之前底层的消息通道发生故障,断开连接
在处理错误时,不同的错误,处理的方式不同,所以在处理错误时,首先要获取当前的错误消息,是通过ErrorMessgae.MESSAGE_DELIVERY_IN_DOUBT的ErrorMessage下的faultCode属性,该属性记录了当前发送的错误信息,用户可以根据错误,来决定忽略错误或者重新发送消息

Consumer的创建:
它的创建和producer差不多,但不同的是,consumer必须要向接收点订阅,这样才能接受来自接收点的消息,,,,通过subscribe()方法可以实现
消息过滤:通过消息的头部信息,对接收的消息进行选择,过滤掉不符合条件的消息,消息过滤使用的是consumer组件的selector属性,又称为消息选择器,如:
selector=”age>18”;;;;;;;;
使用Subtopic:是用来对Priducer组件向接收点发送信息进行分类,在consumer组件中可以设置Subtopic,使得它能从订阅的接收点特定subtopic或者Subtopic集合的消息。使用通配符*可以发送或接收多个Subtopic消息



3.配置消息服务
消息服务配置主要完成的任务是定义消息接收点,对消息接收点使用安全策略,修改日志设置,,消息服务的配置是在flex服务文件中(默认是services-config.xml)的消息服务部分进行,,,,,,,,,以下是相关概念:
1, 消息服务接收点
它是producer和cosumer组件连接服务端处理程序。。
2, 消息通道
它是消息传输的路径,,,,,通常使用最普遍的两个通道时RTMP通道和AMF通道,第一个是客户和服务器之间保证着一条连接,因此不需要轮询服务器,,,而AMF通道当有新的消息到来时需要轮询服务器
3, 消息服务适配器
它是用在与其他系统交互时,提供消息传递功能的服务器处理程序,在接收点的定义中有对适配器的引用,用户也可以指定特定的适配器
4, 安全
指的是接收点的安全,安全保证是通过secutity constraint实现的,它定义了接收点的访问权利,,,secutity constraint在用户访问接收点之前,对用户进行授权和验证



a,  设置网络属性:用来定义client-server之间消息通信的行为---在<destination>下的<properties>下的<network>标签
session-timeout:设定一个订阅者从订阅到退订之前空闲的时间,以分钟计,如果该值等于0,则订阅者不会自动转为退订
throttle-inbound:max-frequency属性控制每秒服务器最大接收消息的条数,,policy属性指示了消息限制达到后的处理,如果为error表示将返回一个错误,IGNORE则不返回错误直接忽略
throttle-outbound:max-frequency属性控制每秒服务器最大接收消息的条数,,policy属性指示了消息限制达到后的处理,如果为error表示将返回一个错误,IGNORE则不返回错误直接忽略,REPLACE表示当达到最大数时以前的消息将会被替换
b, 设置服务器属性:指的是接收点中包含的一系列属性用于控制服务器相关的参数,在  <destination>下的<properties>下的<server>标签
max-cache-size:存储缓存中保存消息的最大条数
message-time-to-live:消息在服务器上保存的时间,为0表示将永久保存
durable:这个是个布尔值,表示消息是否转为持久存储,以防止连接中断,保证消息到达接收点订阅者。当使用JMS适配器时,它会继承该值
durable-store-manager:当flex客户端不使用JMS适配器时会用到这个类,默认情况下包含在Flex Data Services中的flex.messaging.durabilitu.FileStoreManager类,会将消息存储在flex应用中的WEB-INF/flex/message_store/DESTINATION_NAME文件中,,用户也可以通过设置file-store-root属性值来改变存储位置
batch-write-size:每一批写入的持久消息的数量
file-store-root:持久消息文件的存放位置
max-file-size:最大的持久消息的大小,单位kb
c,引用消息通道:消息通过消息通道来回进行传输………在<destination>下的<channels>下的<channel>中的ref属性,,可以定义多个消息通道的引用,
d,引用消息适配器:在flex数据应用中使用Flex Data Service中包含的ActionScript,JMS或者ColdFusion Event Gateway适配器,,,,,,,,,,在<destination>下的<adapter>的ref属性
分享到:
评论

相关推荐

    flex安全机制详解

    ### Flex安全机制详解 #### 一、Flex安全机制概述 Flex是一种用于构建高效且美观的Web应用程序的技术,它能够提供丰富的用户体验。为了确保安全性,Flex采用了一套完整的安全机制来控制不同域之间的通信,其中包括...

    flex事件机制的demo

    Flex ActionScript3.0事件机制的Demo, 举例说明了事件的三个阶段,事件的派发,事件的侦听,事件的拦截,自定义事件等相关知识点. 以上知识点在Demo中都有体现,初学者请仔细分析代码,加强理解,多调试、修改、验证以加深...

    Flex事件机制(通俗易懂)

    ### Flex事件机制详解 #### 一、引言 Flex是一个强大的框架,用于构建高性能的Web应用程序。对于初学者而言,理解和掌握Flex中的事件机制是非常重要的一步。本文将深入探讨Flex事件机制的基础概念、事件注册通道、...

    Flex事件机制详细说明

    ### Flex事件机制详解 #### 一、事件简介 在Flex框架中,事件是应用程序与用户交互的核心机制之一。它可以由多种触发源启动,包括但不限于用户的输入(如键盘按键、鼠标点击)、外部数据加载完成(例如WebService...

    Flex 事件机制,flex入门学习

    【Flex 事件机制详解】 Flex 事件机制是 Flex 应用程序中不可或缺的一部分,它使得组件之间能够有效地通信,响应用户交互以及管理应用程序状态。在深入理解 Flex 事件机制之前,我们需要先了解一下基本概念。 1. *...

    Flex基于Producer和Consumer方式的简易消息推送机制

    Flex中的消息推送机制是基于Producer和Consumer模型实现的,这种机制允许应用程序实时地发送和接收消息,常用于构建聊天室、通知系统等实时交互的应用。下面将详细解释Flex消息推送的相关知识点。 1. **Producer与...

    flex事件机制分析

    Flex事件机制是Adobe Flex应用程序中处理用户交互和组件通信的核心组成部分。它主要涉及事件流、事件处理程序以及事件对象的概念,这些在构建富互联网应用程序(RIA)时扮演着至关重要的角色。下面将对这些概念进行...

    flex打印机制详解

    Flex打印机制是一个在Adobe Flex应用程序中实现打印功能的关键技术,它允许开发者创建用户友好的界面,以便用户可以方便地打印内容。Flex作为一个基于ActionScript 3.0的开放源代码框架,主要用于构建富互联网应用...

    flex事件机制的分发

    Flex事件机制是Adobe Flex框架中一个关键的概念,它允许组件之间通过事件进行通信。在Flex中,事件机制的分发主要包括三个主要阶段:捕获阶段、目标阶段和冒泡阶段。下面将详细介绍这些阶段以及自定义事件的创建与...

    Flex与Java的消息推送

    Flex与Java的消息推送技术主要涉及的是前端Flex应用与后端Java服务器之间的实时数据交互。在Web应用程序中,传统的HTTP协议是基于请求-响应模型的,客户端(浏览器)发起请求,服务器响应,然后连接关闭。然而,对于...

    flex skinning 机制实践

    Flex Skinning机制是Adobe Flex框架中的一个重要特性,它允许开发者为UI组件自定义外观和行为,从而实现应用程序的独特设计和交互体验。通过深入理解并实践Flex Skinning,开发者可以更灵活地控制用户界面的视觉样式...

    flex itemRenderer 渲染机制的概念和使用

    Flex中的itemRenderer是一种关键的组件渲染机制,它允许开发者自定义列表或数据集项的显示方式。在Flex应用中,特别是在处理数据集如ArrayCollection时,我们常常需要以不同的方式展示每个项目,例如图片、文本或者...

    Flex垃圾回收机制

    Flex垃圾回收机制是ActionScript 3.0中的一个重要概念,主要应用于Adobe Flex应用程序的内存管理。在Flex开发中,理解并掌握垃圾回收的工作原理对于优化应用程序性能和避免内存泄漏至关重要。 1. **垃圾回收的基本...

    Blazeds 的flex端主动订阅消息

    在Flex端实现主动订阅消息的功能,意味着我们可以创建一个富互联网应用(RIA),它能实时接收服务器推送的消息,而无需频繁地轮询服务器。这种方式极大地提高了应用的响应性和用户体验。 在Flex端订阅消息的核心...

    Flex的事件机制笔记

    Flex事件机制是Adobe Flex应用程序开发中的核心组成部分,它允许组件之间进行有效的通信和交互。对于初级Flex程序员或爱好者来说,理解这一机制至关重要。在本文中,我们将深入探讨Flex事件的各个方面,包括事件流、...

    Flex4.5事件机制

    Flex4.5事件机制是Flex应用程序开发中的核心组成部分,它基于ActionScript 3.0的事件模型,并且遵循DOM3级事件规范。事件机制使得开发者能够轻松响应用户交互和系统事件,为Flex程序员提供了强大且直观的处理工具。 ...

    blazeDS是FLEX和Java通信的信息机制的消息处理机制

    blazeDS是FLEX和Java通信的信息机制的消息处理机制

    Flex万年历记事本_flex源码

    Flex应用可以利用本地存储机制,如SQLite数据库或者XML文件,来保存用户的记事内容。 9. **样式和皮肤**:Flex支持样式和皮肤,开发者可以通过定义CSS样式来改变组件的外观,使应用符合特定的设计风格。 10. **...

    flex垃圾回收机制是什么原理

    这很好理解,每个 Flex 应用总有一个 Application 的入口被称为根节点(Root),垃圾收集器从根节点开始遍历每个对象,对可达对象标记为“有效”(有一种例外就是弱引用,后面的章节详谈)。而在这棵树之外的孤岛...

Global site tag (gtag.js) - Google Analytics