/smp31/flex_src/com/boco/smp/alarm/proxy/AlarmMQProxy.as
private var consumer:Consumer;
/** 注册回调方法 */
override public function onRegister( ):void {
consumer = new Consumer();
consumer.destination = "AlarmMessage";
consumer.addEventListener(MessageEvent.MESSAGE,messageHandler);
consumer.addEventListener(MessageFaultEvent.FAULT,faultHandler);
consumer.subscribe();
}
---【messaging-config.xml】--配置 消息队列
<?xml version="1.0" encoding="UTF-8"?>
<service id="message-service"
class="flex.messaging.services.MessageService">
<adapters>
<adapter-definition id="actionscript" class="flex.messaging.services.messaging.adapters.ActionScriptAdapter" />
这个是 flex 自有的 消息队列 接口 如果使用这个 消息 队列 需要 自己 写 具体的 业务 实现
<adapter-definition id="jms" class="flex.messaging.services.messaging.adapters.JMSAdapter" default="true" />
</adapters>
这个 配置 的 是 mq 的 现成 mq
<default-channels>
这里 指定了 两个 通道 其 含义 是 如果 第一个 通道 不同 就 调用 第二条 通道 进行 通道
<channel ref="my-streaming-amf" />
<channel ref="my-polling-amf"/>
</default-channels>
<destination id="EventMessage" > <——— 前台调用 就是 利用 这个 名字 进行调用的
<adapter ref="jms" />
<properties>
<!--这里的配置是最关键的,只有durable属性设计为true才能实现持久化订阅
<server>
<durable>true</durable>
</server>
-->
<jms>
<connection-factory>java:comp/env/jms/flex/ConnectionFactory</connection-factory>
<destination-type>Topic</destination-type>
<destination-jndi-name>java:comp/env/jms/flex/SmpEventTopic</destination-jndi-name>
<message-type>javax.jms.ObjectMessage</message-type>
<!-- 持久性 -->
<delivery-mode>PERSISTENT</delivery-mode>
<!-- 优先级 -->
<message-priority>DEFAULT_PRIORITY</message-priority>
<!--应答模式 -->
<acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
</jms>
</properties>
<channels>
<channel ref="my-polling-amf"/>
<channel ref="my-streaming-amf" />
</channels>
</destination>