在上一篇文章中已经介绍了第一例子,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目录下):消息服务例子
分享到:
相关推荐
### 《BlazeDS开发指南》关键知识点概览 #### 一、BlazeDS简介及其功能 BlazeDS,作为Adobe公司的一款免费开源产品,旨在简化企业级应用的开发过程,特别是那些涉及到Flex和Java技术的项目。它源于Adobe的另一款...
2. **blazeds_devguide.pdf**:这是Blazeds的开发指南,通常包含详细的API参考、教程、最佳实践和示例代码。开发者可以通过这份文档学习如何使用Blazeds的各种功能,如AMF(Action Message Format)通信协议、Flex ...
1. **LiveCycle Data Services (LCDS)**:这是BlazeDS的一个高级版本,包含更多企业级特性,如数据推送、消息代理和事务管理。 2. **Remoting**:BlazeDS通过AMF协议实现实时远程调用,使得客户端可以透明地调用...
在开发BlazeDS应用程序时,开发者需要了解如何配置BlazeDS服务端,包括部署必要的库文件、编辑配置文件以及在web.xml中定义MessageBrokerServlet和Session监听器。客户端编程涉及到如何使用Flex SDK提供的控件来调用...
在阅读"BlazeDS开发指南与API"时,应结合实践操作,尝试自己配置和使用BlazeDS,遇到问题时查阅官方文档或社区资源。这样不仅可以巩固理论知识,还能提升解决问题的能力。记住,熟练掌握BlazeDS不仅意味着你可以构建...
BlazeDS开发者指南是Adobe公司为使用BlazeDS框架进行富互联网应用(RIA)开发的开发者提供的一份详细参考资料。BlazeDS是一个开源项目,它允许服务器与客户端之间通过AMF(Action Message Format)进行数据交换,...
"BlazeDS开发者指南" 提供了全面的技术指导,涵盖了从安装、配置到实际应用开发的全过程。中文版和英文版方便不同语言背景的开发者学习,帮助他们更好地理解和运用BlazeDS。 总的来说,BlazeDS是构建RIA的关键技术...
而BlazeDS是Adobe提供的一个免费服务器端组件,用于实现Flex与Java后端的数据通信。本文将深入探讨如何配置Flex与BlazeDS,让它们协同工作,实现高效、稳定的数据交换。 首先,我们需要准备必要的工具和环境。...
#### 三、BlazeDS的特点 BlazeDS具备以下显著特点: 1. **实时消息传递**:支持在客户端之间实现实时的消息传递。 2. **高度可扩展性**:能够根据需求轻松扩展服务端的负载能力。 3. **多种客户端支持**:除了Flex...
BlazeDS通信到Java的PureMVC——Flex框架,BlazeDS的服务器配置比较麻烦,这里使用的是直接下载blazeds_turnkey_3-0-0-544.zip中的tomcat BlazeDS模板路径为: blazeds_turnkey_3-0-0-544.zip解压后路径\tomcat\...
本资料包包含了两份重要的资源,分别是《BlazeDS开发指南》学习笔记.doc和blazeds_devguide.pdf,它们将帮助我们深入了解BlazeDS的开发过程。 首先,《BlazeDS开发指南》学习笔记.doc可能包含了作者在研读官方文档...
Flex BlazeDS开发使用手册是Adobe官方提供的一份详尽指南,旨在帮助开发者高效地集成BlazeDS框架到Flex应用程序中。BlazeDS是一款开源的服务器端技术,它为富互联网应用(RIA)提供了数据推送、消息传递和Remoting...
通过阅读《BlazeDS开发者指南》,开发者可以学习到如何利用BlazeDS构建高性能、交互性强的Web应用程序,提升用户界面的动态性和响应性。指南提供的实例演示了如何创建RPC服务和消息服务,帮助开发者快速上手实践。
### BlazeDS开发者指南知识点 #### 一、BlazeDS概览与核心功能 **BlazeDS**是一款由Adobe系统公司开发的开源服务器软件,旨在为使用Flex或AIR的客户端程序提供远程访问和实时消息传递服务。它使得客户端能够高效地...
总的来说,“BlazeDS开发者指南”涵盖了BlazeDS的基础概念、核心功能、配置方法、集成策略、性能优化等多个方面,是开发人员深入了解和熟练掌握BlazeDS技术的宝贵资源。通过深入阅读和实践,你可以提升自己在Flex和...
BlazeDS 整合 Flex HelloWorld 示例是一个初学者入门教程,主要介绍了如何在JavaEE环境中集成BlazeDS和Flex,创建一个简单的远程调用服务。BlazeDS是一个开源项目,提供了与Adobe Flex之间的实时数据交互,使得Flex...
### BlazeDS开发者指南知识点 #### 一、BlazeDS简介 BlazeDS是Adobe公司推出的一款强大工具,专为Adobe Flex或Adobe AIR等客户端应用程序提供高效、可扩展的远程访问和消息服务。它允许客户端应用与服务器端数据...