- 浏览: 111395 次
最新评论
-
u012273744:
很不错
MySQL存储过程学习 -
neusoft_jerry:
<div class="quote_title ...
Flex消息例子(Producer和Consumer) -
neusoft_jerry:
上传代码要负责,起码自己运行一下,明显错误就上传,是对他人的不 ...
Flex消息例子(Producer和Consumer) -
jd2bs:
介绍挺详细的 改天试试看
MySQL存储过程学习
不多说,直接上代码,关于Flex消息的信息详见Flex消息服务的文章
1.前台Flex代码:
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="application1_creationCompleteHandler(event)"> <fx:Declarations> <mx:RemoteObject id="ro" destination="neAlarmProducer" endpoint="http://ip:8080/appname/messagebroker/amf" showBusyCursor="true"/> </fx:Declarations> <fx:Script> <![CDATA[ import mx.controls.Alert; import mx.events.FlexEvent; import mx.messaging.ChannelSet; import mx.messaging.Consumer; import mx.messaging.channels.StreamingAMFChannel; import mx.messaging.events.ChannelEvent; import mx.messaging.events.ChannelFaultEvent; import mx.messaging.events.MessageEvent; import mx.messaging.events.MessageFaultEvent; import mx.rpc.remoting.RemoteObject; private var consumer:Consumer=new Consumer(); protected function application1_creationCompleteHandler(event:FlexEvent):void { var myStreamingAMF:StreamingAMFChannel=new StreamingAMFChannel(); myStreamingAMF.uri="http://ip:8080/appname/messagebroker/streamingamf"; var channelSet:ChannelSet=new ChannelSet(); channelSet.addChannel(myStreamingAMF); consumer.destination="testDataPush"; consumer.subtopic="3d"; consumer.channelSet=channelSet; consumer.addEventListener(MessageEvent.MESSAGE, messageHandler); consumer.addEventListener(ChannelFaultEvent.FAULT, fault); consumer.addEventListener(MessageFaultEvent.FAULT, fault2); consumer.subscribe();//订阅 } private function fault(e:ChannelFaultEvent):void { trace(e.faultDetail, e.faultString); } private function fault2(e:MessageFaultEvent):void { trace(e.faultDetail, e.faultString); } private function messageHandler(event:MessageEvent):void { trace("-----messageHandler-"); ta.text = ta.text + "获取的告警: " + event.message.body.description + " \n"; } private function messageResult(event:MessageEvent):void { trace("-----messageResult-"); } private function connectHandler(event:ChannelEvent):void { trace("----connectHandler-"); } private function disconnectHandler(event:ChannelEvent):void { trace("----disconnectHandler-"); } protected function button1_clickHandler(event:MouseEvent):void { var ro:RemoteObject=new RemoteObject(); ro.endpoint="http://ip:8080/appname/messagebroker/streamingamf"; ro.destination="testPush"; ro.test(); } ]]> </fx:Script> <s:Button label="test" click="button1_clickHandler(event)"/> <s:TextArea id="ta" x="10" y="42"/> </s:Application>
2.message-config.xml中加入如下代码
<destination id="testDataPush"> <properties> <server> <allow-subtopics>true</allow-subtopics> <subtopic-separator>.</subtopic-separator> </server> </properties> <channels> <channel ref="my-polling-amf" /> <channel ref="my-streaming-amf" /> </channels> </destination>
3.service-config.xml中如果没有此通道,则加入此通道
<channel-definition id="my-streaming-amf" class="mx.messaging.channels.StreamingAMFChannel"> <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/streamingamf" class="flex.messaging.endpoints.StreamingAMFEndpoint"/> </channel-definition>
4.spring配置文件中加入如下代码:
<!-- 定义 MessageBrokerFactoryBean 工厂 Bean 用于创建 MessageBroker,并为您的 Service Bean 提供绑定服务 --> <bean id="_messageBroker" class="org.springframework.flex.core.MessageBrokerFactoryBean"> <property name="servicesConfigPath" value="/WEB-INF/flex/services-config.xml" /> </bean> <!-- 引入 HandlerMapping 通过 MessageBrokerHandlerAdapter 将所有的 Servlet 请求 URL 映射到由 Spring 容器管理的 MessageBroker --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/*amf*">_messageBroker</prop> <prop key="*.do">alarmShieldRuleController</prop> </props> </property> </bean> <bean id="defaultMessageTemplate" class="org.springframework.flex.messaging.MessageTemplate" /> <bean id="testPush" class="TestDataPush"><property name="messageTemplate" ref="defaultMessageTemplate"></property></bean> <bean class="org.springframework.flex.servlet.MessageBrokerHandlerAdapter"/>
5.后台Java代码:
public class TestDataPush { private MessageTemplate messageTemplate; private AsyncMessage asyncMessage; public TestDataPush() { super(); String clientID = UUIDUtils.createUUID(); asyncMessage = new AsyncMessage(); asyncMessage.setDestination("testDataPush"); asyncMessage.setHeader("DSSubtopic", "3d"); asyncMessage.setClientId(clientID); asyncMessage.setMessageId(UUIDUtils.createUUID()); } public void test() { System.out.println("test-------------------"); asyncMessage.setTimestamp(System.currentTimeMillis()); asyncMessage.setBody("test"); messageTemplate.getMessageBroker().routeMessageToService(asyncMessage, null); } public MessageTemplate getMessageTemplate() { return messageTemplate; } public void setMessageTemplate(MessageTemplate messageTemplate) { this.messageTemplate = messageTemplate; } }
评论
2 楼
neusoft_jerry
2014-11-19
neusoft_jerry 写道
上传代码要负责,起码自己运行一下,明显错误就上传,是对他人的不负责,同样也是对自己的不负责。
<bean id="testPush" class="TestDataPush"><property name="messageTemplate" ref="defaultMessageTemplate"></property></bean>
这个bean是目的bean,可却缺少<flex:remoting-destination/>
1 楼
neusoft_jerry
2014-11-19
上传代码要负责,起码自己运行一下,明显错误就上传,是对他人的不负责,同样也是对自己的不负责。
发表评论
-
Flex4 ButtonBar设置图标及获取选中对象
2012-07-06 16:56 2861不多说,直接上代码 <?xml version ... -
ActionScript的arguments 对象和...(rest) 参数
2012-06-21 17:34 1144arguments 对象 在将参数传递 ... -
ActionScript循环
2012-06-20 11:11 864循环语句允 ... -
ActionScript常量
2012-06-20 10:53 985ActionScript 3.0 支持 ... -
ActionScript3 数据类型
2012-06-20 10:23 890ActionScript 基元数据类型包括 B ... -
ActionScript动态类
2012-06-20 10:01 1046“动态”类定 ... -
ActionScript中的is类型和as类型
2012-06-20 09:49 1220is 运算符 is 运算符是 ActionScr ... -
Flex tree 定位
2012-06-08 15:44 14761. 数据源为Object // tree上选择到网元 ... -
ArrayList转XML
2012-06-08 14:21 2200//ArrayList转换为xml var treedata ... -
Flex自定义Tree图标
2012-06-08 11:29 18571.数据源为xml <?xml version=&qu ... -
Flex特效
2012-06-06 10:51 1220这里面有许多特效很酷,希望对大家有帮助。 1.旋转 效果:ht ... -
Blazeds集成Flex和Java
2012-05-28 11:05 2025BlazeDS中包含了A ... -
flex消息服务
2012-05-25 13:54 29491, 初识消息服务: 相关概念: 消息(messa ... -
Cairngorm框架
2012-05-25 09:31 2654Cairngorm是由adobe公司推出的一个轻量级的 ... -
Flex效果
2012-04-18 16:50 10051.旋转 效果:http://www.alex-uhlmann ... -
Flex4 <s:DataGrid> 的用法
2012-04-11 15:01 16715Flex4中的s:DataGrid与Flex3的mx:Data ... -
Flex多选框的实现
2012-04-06 15:41 36711. 现在界面上放一个容器,如BorderContainer ... -
关于Flash/Flex如何引用父容器,根容器
2012-04-06 14:26 2671flash 中主要是 parent,r ... -
Flex tree 节点递归查找,并且选择该节点
2012-04-06 13:50 3142private function treeLoca ... -
Flex Tree节点的展开与收缩
2012-04-06 13:40 4569<?xml version="1.0&q ...
相关推荐
Flex中的消息推送机制是基于Producer和Consumer模型实现的,这种机制允许应用程序实时地发送和接收消息,常用于构建聊天室、通知系统等实时交互的应用。下面将详细解释Flex消息推送的相关知识点。 1. **Producer与...
它通过共享缓冲区实现生产者线程(Producer Thread)和消费者线程(Consumer Thread)之间的协同工作。生产者负责生成数据并放入缓冲区,而消费者则负责从缓冲区取出数据进行处理。这种设计模式能够有效地避免生产者...
Kafka是一种分布式流处理平台,常用于实时数据处理和消息传递。在本教程中,我们将探讨如何搭建一个支持SASL(Simple Authentication and Security Layer)认证的Kafka集群,并使用Python API来创建Producer和...
别人的太贵了,自己写一份分享!c语言实现生产者消费者模型,支持设置生产者消费者线程数量,支持设置消息数量。消息的组织形式为链表。生产者生产消息和消费者处理消息分别需要对应的条件变量。代码编译方式见注释
Kafka客户端producer/consumer样例
3. `Producer.java`: 这个文件可能包含了生产者线程的实现。生产者线程会不断地生成数据(在这种情况下可能是事件对象),然后调用`EventStorage`的`put()`方法将数据放入队列。为了防止无限制地生成数据导致队列...
在这个问题中,有两组角色:生产者(Producer)和消费者(Consumer)。生产者负责创建或生成资源,而消费者则负责消费这些资源。在多线程环境下,为了确保数据的一致性和避免资源竞争,需要采取适当的同步机制。本...
在这个例子中,生产者和消费者通过互斥量和条件变量进行同步。当缓冲区满或空时,线程会等待并被其他线程唤醒。这种设计确保了数据的一致性,防止了竞争条件,使得程序在单线程环境中也能正确地执行生产者消费者问题...
本文将深入探讨如何使用Eureka构建Producer(服务提供者)和Consumer(服务消费者),并利用Feign和Ribbon进行远程调用。 1. **Eureka Server** Eureka Server作为服务注册中心,负责管理所有微服务实例的信息。每...
The use of producer-consumer questions helps to better understand threads.
"flex的xiff访问openfire服务器的demo"是一个示例项目,展示了如何使用Flex和XIFF库连接到Openfire服务器并进行基本的聊天功能。通过这个示例,开发者可以学习以下关键知识点: 1. **Flex环境搭建**:首先需要安装...
本篇文章将深入探讨Eureka作为服务注册中心的工作原理、配置及其实现过程,帮助读者理解和掌握Eureka在实际项目中的应用。 1. **Eureka简介** Eureka是Netflix开源的一个基于REST的服务发现框架,它允许服务提供者...
- `KafkaTemplate.send()`方法用于发送消息,可以通过指定主题和消息内容来完成发送操作。 3. **Kafka消费者(Consumer)**: - 消费者从Kafka主题中拉取消息。Spring Boot中的`@KafkaListener`注解用于定义消费...
标题中的“Peterson_producer_consumer.zip_c语言Peterson”指的是一个使用C语言实现的基于Peterson算法的生产者-消费者问题实例。生产者-消费者问题是多线程编程中常见的同步问题,而Peterson算法是解决两个进程...
ProducerConsumer 模型是计算机科学中的一个经典设计模式,它主要解决了多线程环境下的资源同步和通信问题。在 C# 中,我们可以利用 .NET Framework 提供的并发和线程管理工具来实现这个模型。本项目 "Producer...
PROGRAM NAME: PRODUCER_CONSUMER */ /* This program simulates two processes, producer which */ /* continues to produce message and put it into a buffer */ /* [implemented by PIPE], and consumer which ...
Spring Boot 集成 Kafka 可以帮助开发者轻松地在应用程序中实现消息生产和消费功能,利用 Kafka 的高性能和可扩展性。Kafka 是一个分布式流处理平台,它最初由 LinkedIn 开发,后来成为 Apache 软件基金会的顶级项目...
在这个例子中,`ArrayBlockingQueue`作为共享资源,生产者和消费者通过它进行通信。生产者线程创建20个元素,而消费者线程无限循环消费队列中的元素,直至所有元素被消费完。 总的来说,生产者-消费者模型是一种...
在这个实验中,57119101_王晨阳_ProducerConsumer1通过Win32 API和Pthreads两种方式实现了这一问题的解决方案。 在实验目的部分,目标是理解并掌握Win32 API中的mutex锁和信号量(semaphores)的使用,以及如何利用...
此外,生产者和消费者模型在实际应用中非常广泛,比如在消息队列、数据库连接池、多线程任务调度等场景中都能找到它的身影。理解并熟练掌握这一设计模式,对于提升Java多线程编程的能力大有裨益。在分析和解决问题时...