`
ynp
  • 浏览: 439766 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

简化的消息订阅例子

XML 
阅读更多
后台是BlazeDS自带的例子traderdesktop
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
	<mx:Script>
		<![CDATA[
			import mx.messaging.channels.AMFChannel;
			import mx.messaging.Channel;
			import mx.messaging.ChannelSet;
			import mx.collections.ArrayCollection;
			import mx.messaging.config.ServerConfig;
			import mx.messaging.events.MessageEvent;
			import samples.portfolio.Stock;
			import mx.messaging.Consumer;
			
			[Bindable]private var items:ArrayCollection = new ArrayCollection();
			
			private var consumer:Consumer;	
			
			private function subscribe(symbol:String):void{
				consumer = new Consumer();
				consumer.destination = "market-data-feed";
				consumer.subtopic = symbol;
/**************定义ChannelSet方式一************/				
/* 				var channelStr:String = ServerConfig.getChannelSet("market-data-feed").channelIds[0];
				consumer.channelSet = new ChannelSet([channelStr]); */
/**************定义ChannelSet方式二************/					
				var pollingChannel:AMFChannel = new AMFChannel("my-polling-amf","http://localhost:8400/samples/messagebroker/amfpolling");
				pollingChannel.pollingEnabled = true; //开启轮询
				pollingChannel.pollingInterval = 10000;//轮询间隔
				var channelSet:ChannelSet = new ChannelSet();
				channelSet.addChannel(pollingChannel);
				consumer.channelSet = channelSet;
				
				consumer.addEventListener(MessageEvent.MESSAGE, messageHandler);
				consumer.subscribe();
			}
			
			private function messageHandler(event:MessageEvent):void{
				var stock:Stock = event.message.body as Stock;
				items.addItem(stock);
	        }
	        
			private function unsubscribe(symbol:String):void{
				consumer.removeEventListener(MessageEvent.MESSAGE, messageHandler);
				if (consumer.subscribed)
				{
					consumer.unsubscribe();
				}
				consumer.channelSet.disconnectAll();
			}	        			
		]]>
	</mx:Script>
	<mx:HBox width="100%">
		<mx:Button label="订阅" click="subscribe('IBM')"/>
		<mx:Button label="取消订阅" click="unsubscribe('IBM')"/>
	</mx:HBox>
	<mx:DataGrid id="dg" dataProvider="{items}" width="100%" height="100%">
<!--		<mx:columns>
			<mx:DataGridColumn headerText="Symbol" dataField="symbol" width="80"/>
			<mx:DataGridColumn headerText="Open" dataField="open" labelFunction="formatNumber" textAlign="right" width="60"/>
			<mx:DataGridColumn headerText="Last" dataField="last" itemRenderer="BackgroundColorRenderer" labelFunction="formatNumber" textAlign="right" width="60"/>
			<mx:DataGridColumn headerText="Change" dataField="change" itemRenderer="ColorRenderer" labelFunction="formatNumber" textAlign="right" width="60"/>
			<mx:DataGridColumn headerText="High" dataField="high" labelFunction="formatNumber" textAlign="right" width="60"/>
			<mx:DataGridColumn headerText="Low" dataField="low" labelFunction="formatNumber" textAlign="right" width="60"/>
		</mx:columns>-->
	</mx:DataGrid>
</mx:Application>
分享到:
评论

相关推荐

    java调用MQTT,实现订阅/发布功能

    在这个例子中,我们连接到指定的MQTT服务器,订阅`test/topic`,并发布一条消息到同一主题。记得替换`your-mqtt-broker.com:1883`为你实际的MQTT服务器地址和端口。 这就是在Java中调用MQTT,实现订阅和发布功能的...

    Java实现Redis的消息订阅和发布源码

    这个例子展示了如何使用Java通过Jedis与Redis进行交互,实现实时的消息发布和订阅。在实际应用中,你可以根据需求对代码进行扩展,例如支持多通道订阅,处理更复杂的消息格式,或者使用连接池管理Jedis实例以提高...

    SpringBoot+ActiveMq+MQTT实现消息的发送和接收

    这是一个典型的分布式系统中的消息通信场景,其中SpringBoot作为应用程序框架,ActiveMQ作为消息中间件,而MQTT(Message Queuing Telemetry Transport)则是一种轻量级的发布/订阅消息协议,适用于低带宽、高延迟或...

    网站订阅销售管理系统ui框架模板

    总的来说,这款“网站订阅销售管理系统UI框架模板”是一个高效的设计工具,它简化了开发过程,为创建专业级别的订阅管理和销售统计系统提供了便捷的起点。无论是初创公司还是成熟企业,都可以利用这个模板快速构建出...

    18 发布-订阅模式:去 adadis 买鞋.pdf

    总结来说,发布-订阅模式是一种强大的设计模式,它简化了对象之间的通信,降低了系统的耦合度,使得系统更加灵活和可扩展。在JavaScript中,我们可以利用这个模式来处理事件、数据流和其他异步通信场景,从而构建出...

    spring下queue与持久订阅topic实现

    而Topic则遵循发布/订阅(Publish/Subscribe)模型,多个消费者可以订阅同一个Topic,发布到Topic的消息会被所有订阅者接收,没有顺序保证,适用于一对多的消息传递。 1. **配置JMS(Java Message Service)** 在...

    jms+activeMq+spring学习简单例子

    而在发布/订阅模型中,消息可以被多个订阅者接收。 2. **ActiveMQ介绍**:ActiveMQ作为JMS的实现,提供了多种协议支持(如OpenWire、STOMP、AMQP等),支持高可用性和可伸缩性,具有丰富的管理和监控工具。 3. **...

    Spring boot+redis实现消息发布与订阅的代码

    Spring Boot以其简化Spring应用程序的初始化和配置而闻名,而Redis则是一个高效、轻量级的内存数据结构存储,常用于实现缓存、消息队列以及消息发布/订阅系统。 首先,为了在Spring Boot项目中引入Redis支持,我们...

    SpringCloud 全部完整例子

    10. **SpringCloud Stream**:SpringCloud Stream提供了一个消息驱动的编程模型,支持发布/订阅模式。这个示例会帮助你理解如何使用SpringCloud Stream进行消息传递。 11. **SpringCloud Bus**:Bus可以将配置更新...

    activeMQjava的简单demo例子

    这个简单的ActiveMQ Java demo例子不仅帮助我们理解如何在Java应用中使用ActiveMQ,还展示了Spring JMS的便利性。在实际开发中,你可以根据项目需求,利用ActiveMQ实现消息的持久化、消息确认、消息分发策略(如负载...

    springboot-websocket例子

    Spring Boot提供对STOMP的支持,允许我们使用更高级别的消息抽象,比如订阅、发布/订阅模型等。 6. **前端集成**: 前端通常使用JavaScript的WebSocket API与后端进行交互。例如,使用`WebSocket`对象创建连接,`...

    ATL简单例子

    这个“ATL简单例子”很可能是提供了一些基础的ATL控件、连接点和事件处理的示例代码,帮助开发者理解和学习如何在实际项目中应用ATL。 1. **ATL控件**:ATL控件是基于COM的轻量级控件,主要用于创建ActiveX控件。...

    RxSwift垃圾袋的使用例子

    在这个"RxSwift垃圾袋的使用例子"中,我们将深入探讨如何使用垃圾袋( DisposeBag )这一关键概念来有效地管理和清理订阅关系,以及它在停止定时器(Timer)等场景中的应用。 垃圾袋(DisposeBag)是RxSwift中用于...

    EventBus3.0例子demo

    EventBus 是一个Android轻量级事件总线框架,它简化了应用程序组件之间的通信。这个"EventBus3.0例子demo"包含了一个使用EventBus 3.0版本的简单示例,帮助开发者理解如何在项目中集成和使用这个库。下面我们将深入...

    activeMQ与spring整合开发的例子程序

    将ActiveMQ与Spring整合可以极大地简化消息队列的使用,提高系统的可维护性和扩展性。 本例子程序的主题是"activeMQ与spring整合开发",这意味着它将展示如何在Spring应用中集成ActiveMQ,以便利用消息队列进行异步...

    java 消息服务(第二版)源码

    6. **主题(Topic)**:发布/订阅模型,多个消费者可以订阅同一个主题,接收消息。 7. **持久化**:确保即使在消息代理重启后,消息也不会丢失。 8. **事务**:支持事务处理,保证消息的一致性。 在提供的压缩包...

    spring data redis 小例子

    Spring Data Redis是一个强大的Java库,它为开发人员提供了一种简单的方式来利用Redis内存数据存储进行...在实际项目中,你可以根据需求扩展这个例子,比如引入Redis的事务支持、发布订阅模式或者地理空间索引等功能。

Global site tag (gtag.js) - Google Analytics