`
oywl2008
  • 浏览: 1004042 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Flex消息服务

 
阅读更多

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

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

2, 使用flex消息服务 


Producer的创建: 
1,使用MXML方式: 

 

Mxml代码 复制代码 收藏代码
  1. <mx:Producer id=”user1” destination=”msCenter” acknowledge=”handleAck(event)” fault=”handleFault(event)”/>   
<mx:Producer id=”user1” destination=”msCenter” acknowledge=”handleAck(event)” fault=”handleFault(event)”/> 

 

 

 

MessageEvent-----消息处理,MessageAckEvent------确认事件处理,MessageFaultEvent--------错误事件处理 
2,  使用as方式 

As3代码 复制代码 收藏代码
  1. private var user1:Producer;    
  2.    user1 = new Prodicer();    
  3.    user1.destination = “msCenter”;    
  4.    user1.addEventListener(MessageAckEvent.ACKNOWLEDGE,handleAck);    
  5.    user1.addEventListener(MessageFaultEvent.FAULT,handleFault);   
 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()方法发送信息 

As3代码 复制代码 收藏代码
  1. 如:var content:AsyncMessage=new AsyncMessage();    
  2. content.body=”韩定”;    
  3. user1.send();    
  4. 可以向消息中添加额外信息    
  5. 如:var content:AsyncMessage=new AsyncMessage();    
  6. content.headers = new Array();    
  7. content.headers[“user”]=”张三”;   
如: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属性 

 

http://zhanshenlvbu.iteye.com/blog/1540502

 

http://keren.iteye.com/blog/560896

 

 
分享到:
评论

相关推荐

    基于Java_BlazeDS_Flex_服务器消息推的聊天室

    基于Java_BlazeDS_Flex_服务器消息推的聊天室 了解BlazeDS推送机制,flex调用java web BlazeDS的过程 服务器推,摒弃ajax的轮询,减轻服务器压力!

    Flex Message Service 消息服务

    FlexMessageService消息服务,网上摘抄,归档留作以后参考。下载的朋友,此资源分为0,或者去网上随便搜索很多的。

    Flex + blazeds + Java推送

    本例实现由Flex一端客户端发送消息, 然后由Java端在发布到所有订阅的其它Flex端. 里面有说明与源码, 还有一个直接放到Tomcat里面的直接发布的项目 小编使用工具 eclipse3.5 flex sdk4.6 jdk1.6 blzaeds

    Flex教程 ppt格式 简单实用

    使用组合框、步进器.ppt第12章 使用拖放.ppt第13章 界面布局.ppt第14章 使用图表.ppt第15章 使用定制组件.ppt第16章 定制界面.ppt第17章 数据处理和数据服务.ppt第18章 PRC服务.ppt第19章 消息服务.ppt第20章 ...

    Ext框架与Flex框架的整合实例

    环境:Window XP Sp3, IE 7.0, Tomcat 6.0, MyEclipse 5.5, Flex Builder 3, Ext 3.2。 使用步骤: 1、下载解压缩之后,使用IDE导入ExtAndFlex工程 2、使用IDE把该工程发布到Tomcat服务器 3、打开IE在地址输入...

    Flex学习大礼包(flex基础教程、flex和java整合)--下载不扣分,童叟无欺

    第19章 消息服务.ppt 第20章 数据管理.ppt 第21章 XML的处理.ppt 第22章 Flex应用程序开发.ppt 第23章 Flex应用程序部署.ppt 第24章 文件的上传下载.ppt 第25章 Mp3播放器.ppt 第26章 用户登录.ppt 第27章 ...

    Flex教程.rar

    第19章 消息服务.ppt 第20章 数据管理.ppt 第21章 XML的处理.ppt 第22章 Flex应用程序开发.ppt 第23章 Flex应用程序部署.ppt 第24章 文件的上传下载.ppt 第25章 Mp3播放器.ppt 第26章 用户登录.ppt 第27章 电子相册....

    flex开发用的blazeds.war下载

    BlazeDS 是一个基于服务器的Java 远程控制(remoting) 和Web 消息传递(messaging) 技术,它能够使得后端的Java 应用程序和运行在浏览器上的Adobe Flex

    新版Flex4下Java与BlazeDs整合的项目(含远程调用和消息服务示例)

    RT 已经含有了blazeDs.war FlashBuilder4 Tomcat6下测试通过~ 先启动后台服务 http://localhost:8080/Flex4JavaDemo/TickCacheServlet?cmd=start http://localhost:8080/Flex4JavaDemo/message.html

    flex ppt电子教案

    关于 表格、菜单、日期格式、消息服务、等

    使用BlazeDS实现Java和Flex通信

    BlazeDS是一个基于服务器的Java 远程控制(remoting)和Web消息传递(messaging)技术,它能够使得后端的Java应用程序和运行在浏览器上的Adobe Flex应用程序相互通信。这篇文章中,我讲述一种方法(也许不是最好的)使得...

    flex 实现QQ界面

    flex实现的qq界面,具体实现通信可以使用消息服务,实现实时和留言比较简单了

    Flex+BlazeDS+AIR+StreamingAMFChannel消息服务的即时聊天通信

    NULL 博文链接:https://shihuan830619.iteye.com/blog/1053917

    flex与java的整合教程

    使用Flex整合Java,什么...另外附加了BlazeDS的学习知识,BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,它能够使得后台的Java应用程序和运行在浏览器上的Flex应用程序相互通信。

    flex完全自学手册 电子教案(PPT)

    2008-07-10 10:40 107008 38478 第19章 消息服务.ppt 2008-07-10 10:42 108544 39722 第20章 数据管理.ppt 2008-07-10 10:43 117248 39313 第21章 XML的处理.ppt 2008-07-10 10:47 125440 72020 第22章 Flex应用程序...

    move_base_flex:移动基础弹性

    提供了用于子模块计划,控制和恢复以及查询成本图的服务的操作。 该界面允许外部主管(例如SMACH或行为树)运行高度灵活和复杂的导航策略。 有关所有操作的综合结果和反馈信息,包括错误代码和来自已加载插件的...

    flex3的cookbook书籍完整版dpf(包含目录)

    使用发布/订阅消息 18.8节. 注册服务端数据类型 18.9节. 与WebService通信 18.10节. 添加SOAP头到WebSerice请求 18.11节. 解析WeBService的返回的SOAP响应 18.12节. 使用SecureAMFChannel进行AMF的安全通信 18.13节...

    Sharetribe-Flex-Mobile-Client:Sharetribe Flex 移动客户端

    Sharetribe Flex 是一个 API 优先的市场解决方案,可为任何行业的租赁或服务预订提供可定制的功能:可用性日历和日程安排、搜索、消息和通知、管理用户和列表、用于监控用户的管理面板、列表、评论和消息、在线支付...

    普联架构设计技术方案.pptx

    指标管理 口径管理 维度度量 企业应用服务 主数据服务 表单服务 流程服务 分析服务 文档服务 门户服务 Windows/Linux/AIX/Solaris/… Websphere/Tomcat… Oracle/*Sybase/*DB2 应用集成环境 定时任务 消息服务 ...

    jmeter图文入门教程.pdf

    站点的Web1.0的Web 2.0 (ajax, flex and flex-ws-amf) Web Services: SOAP / XML-RPC 通过JDBC驱动程序的数据库 ⽬录: LDAP ⾯向消息的服务通过JMS Service: POP3, IMAP, SMTP FTP 服务 等等其他协议

Global site tag (gtag.js) - Google Analytics