`
WaterSugar
  • 浏览: 94428 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

《BlazeDS开发指南》学习笔记(三):两个示例

    博客分类:
  • Flex
阅读更多

  在上一篇文章中已经介绍了第一例子,RPC服务,在该篇文章中介绍另一个例子,消息服务。

 

  二、消息服务例子

 

  消息服务可以使得客户端发送和接收其他客户端的消息,在该例子中,接收和发送消息是基于同一个BlazeDS目的(destination)的。

 

  首先,在WEB-INF/flex/messaging-config.xml文件中定义消息目的,代码如下:

 

<destination id="MessagingDestination" channels="my-polling-amf" />

 

  上面使用的通道“my-amf-poll”在WEB-INF/flex/services-config.xml文件中定义,代码如下:

 

<channel-definition id="my-polling-amf" class="mx.messaging.channels.AMFChannel">
  <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfpolling" class="flex.messaging.endpoints.AMFEndpoint"/>
  <properties>
    <polling-enabled>true</polling-enabled>
    <polling-interval-seconds>1</polling-interval-seconds>
  </properties>
</channel-definition>

 

  上面定义了一个每隔一秒钟轮询一次的轮询通道,轮询是主动更新客户端数据的最简单方法,另外还可以配置的参数有piggybacking,long-polling和streaming。

 

  在Flex客户端程序中,使用Producer控件发送消息,使用Consumer控件接收服务端返回的消息。发送消息时,首先创建一个AsyncMessage类的实例,然后设置该实例的body属性为具体要发送的内容,最后调用Producer的send()方法将消息发送给服务器;对于接收消息,在程序初始化时,就应该调用Consumer的subscribe()方法订阅Producer指定destination的服务器消息,服务器端有消息返回时,会自动调用Consumer的message指定的方法,详细代码如下:

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" creationComplete="consumer.subscribe();">

<mx:Script>
  <![CDATA[
    import mx.messaging.messages.AsyncMessage;
    import mx.messaging.events.MessageFaultEvent;
    import mx.messaging.events.MessageEvent;

    private function faultHandler(event:MessageFaultEvent):void
    {
      ta.text += "Received fault: " + event.faultString + "\n";
    }

    private function messageHandler(event:MessageEvent):void
    {
      ta.text += "Consumer received message: " + event.message.body + "\n";
    }

    private function sendMessage():void
    {
      var msg:AsyncMessage = new AsyncMessage();
      msg.body = "Foo";
      producer.send(msg);
    }
  ]]>
</mx:Script>

<mx:Producer id="producer" destination="MessagingDestination" fault="faultHandler(event);" />
<mx:Consumer id="consumer" destination="MessagingDestination" fault="faultHandler(event);" message="messageHandler(event);" />
<mx:TextArea id="ta" width="100%" height="100%" />
<mx:Button label="Send" click="sendMessage();" />
</mx:Application>

 

  将上面文件编译为SWF,并部署到BlazeDS服务器中,在浏览器中进行体验,如图:

 

 

 

 

  整个代码请点击下载(解压后拷贝msg目录到Tomcat的webapps目录下):消息服务例子

 

分享到:
评论
8 楼 WaterSugar 2010-03-12  
不好意思,我也好久没有研究过了,唉……
7 楼 east_java 2010-03-07  
请问LZ,怎么给特定的client发送消息啊?
6 楼 WaterSugar 2009-12-27  
haiter 写道
消息服务例子程序下载不了

实在不好意思,那个网盘不行了,而且我的资料也没有了,不能发给你了!
5 楼 haiter 2009-12-03  
消息服务例子程序下载不了
4 楼 haiter 2009-12-03  
能否将相关程序打包发给我
谢谢
3 楼 haiter 2009-12-03  
按你的写,不知如个地方搞错了
出现如下错误,请问如何解决?
Received fault: The 'Remoting' service can only process messages of type 'RemotingMessage'.
2 楼 WaterSugar 2008-10-17  
对的,谢谢提醒,粗心大意了,马上改正。
1 楼 eoeac 2008-10-17  
引用

Xml代码 复制代码
<destination id="MessagingDestination" channels="my-amf-poll" />

  上面使用的通道“my-amf-poll”在WEB-INF/flex/services-config.xml文件中定义,代码如下:

在WEB-INF/flex/services-config.xml定义的channel id是my-polling-amf,这里应该与其相同吧?

相关推荐

    《BlazeDS开发指南》学习笔记

    ### 《BlazeDS开发指南》关键知识点概览 #### 一、BlazeDS简介及其功能 BlazeDS,作为Adobe公司的一款免费开源产品,旨在简化企业级应用的开发过程,特别是那些涉及到Flex和Java技术的项目。它源于Adobe的另一款...

    blazeds开发指南

    2. **blazeds_devguide.pdf**:这是Blazeds的开发指南,通常包含详细的API参考、教程、最佳实践和示例代码。开发者可以通过这份文档学习如何使用Blazeds的各种功能,如AMF(Action Message Format)通信协议、Flex ...

    BlazeDS开发者指南中文版

    1. **LiveCycle Data Services (LCDS)**:这是BlazeDS的一个高级版本,包含更多企业级特性,如数据推送、消息代理和事务管理。 2. **Remoting**:BlazeDS通过AMF协议实现实时远程调用,使得客户端可以透明地调用...

    《BlazeDS开发指南》.doc

    在开发BlazeDS应用程序时,开发者需要了解如何配置BlazeDS服务端,包括部署必要的库文件、编辑配置文件以及在web.xml中定义MessageBrokerServlet和Session监听器。客户端编程涉及到如何使用Flex SDK提供的控件来调用...

    BlazeDS权威指南与API

    在阅读"BlazeDS开发指南与API"时,应结合实践操作,尝试自己配置和使用BlazeDS,遇到问题时查阅官方文档或社区资源。这样不仅可以巩固理论知识,还能提升解决问题的能力。记住,熟练掌握BlazeDS不仅意味着你可以构建...

    BlazeDS开发者指南 blazeds_devguide

    BlazeDS开发者指南是Adobe公司为使用BlazeDS框架进行富互联网应用(RIA)开发的开发者提供的一份详细参考资料。BlazeDS是一个开源项目,它允许服务器与客户端之间通过AMF(Action Message Format)进行数据交换,...

    BlazeDS开发者指南(中文版和英文版)

    "BlazeDS开发者指南" 提供了全面的技术指导,涵盖了从安装、配置到实际应用开发的全过程。中文版和英文版方便不同语言背景的开发者学习,帮助他们更好地理解和运用BlazeDS。 总的来说,BlazeDS是构建RIA的关键技术...

    flex+blazeDS配置指南

    而BlazeDS是Adobe提供的一个免费服务器端组件,用于实现Flex与Java后端的数据通信。本文将深入探讨如何配置Flex与BlazeDS,让它们协同工作,实现高效、稳定的数据交换。 首先,我们需要准备必要的工具和环境。...

    [BDS]BlazeDS开发者指南

    #### 三、BlazeDS的特点 BlazeDS具备以下显著特点: 1. **实时消息传递**:支持在客户端之间实现实时的消息传递。 2. **高度可扩展性**:能够根据需求轻松扩展服务端的负载能力。 3. **多种客户端支持**:除了Flex...

    BlazeDS,PureMVC

    BlazeDS通信到Java的PureMVC——Flex框架,BlazeDS的服务器配置比较麻烦,这里使用的是直接下载blazeds_turnkey_3-0-0-544.zip中的tomcat BlazeDS模板路径为: blazeds_turnkey_3-0-0-544.zip解压后路径\tomcat\...

    BlazeDS 开发资料

    本资料包包含了两份重要的资源,分别是《BlazeDS开发指南》学习笔记.doc和blazeds_devguide.pdf,它们将帮助我们深入了解BlazeDS的开发过程。 首先,《BlazeDS开发指南》学习笔记.doc可能包含了作者在研读官方文档...

    flex blazeDS开发使用手册,对于集成blaze开发很有用处。

    Flex BlazeDS开发使用手册是Adobe官方提供的一份详尽指南,旨在帮助开发者高效地集成BlazeDS框架到Flex应用程序中。BlazeDS是一款开源的服务器端技术,它为富互联网应用(RIA)提供了数据推送、消息传递和Remoting...

    BlazeDS开发者指南.pdf

    通过阅读《BlazeDS开发者指南》,开发者可以学习到如何利用BlazeDS构建高性能、交互性强的Web应用程序,提升用户界面的动态性和响应性。指南提供的实例演示了如何创建RPC服务和消息服务,帮助开发者快速上手实践。

    BlazeDS开发者指南

    ### BlazeDS开发者指南知识点 #### 一、BlazeDS概览与核心功能 **BlazeDS**是一款由Adobe系统公司开发的开源服务器软件,旨在为使用Flex或AIR的客户端程序提供远程访问和实时消息传递服务。它使得客户端能够高效地...

    BlazeDS开发者指南.rar

    总的来说,“BlazeDS开发者指南”涵盖了BlazeDS的基础概念、核心功能、配置方法、集成策略、性能优化等多个方面,是开发人员深入了解和熟练掌握BlazeDS技术的宝贵资源。通过深入阅读和实践,你可以提升自己在Flex和...

    BlazeDS 整合 Flex HelloWorld 示例

    BlazeDS 整合 Flex HelloWorld 示例是一个初学者入门教程,主要介绍了如何在JavaEE环境中集成BlazeDS和Flex,创建一个简单的远程调用服务。BlazeDS是一个开源项目,提供了与Adobe Flex之间的实时数据交互,使得Flex...

    blazeds开发者指南中英文对照版

    ### BlazeDS开发者指南知识点 #### 一、BlazeDS简介 BlazeDS是Adobe公司推出的一款强大工具,专为Adobe Flex或Adobe AIR等客户端应用程序提供高效、可扩展的远程访问和消息服务。它允许客户端应用与服务器端数据...

Global site tag (gtag.js) - Google Analytics