JMS Chat
这个应用程序与之前的chat程序是差不多一样的,不同的只是使用的目标名使用的是“jms-chat”。在服务端,目标映射到一个JMS的topic。
一、运行DEMO:
1、运行程序:http://localhost:8400/spring-flex-testdrive/jmschat/index.html。
2、打开另一个浏览器,访问同样的URL,打开同个程序的另一个实例。
3、在一个客户端中输入一些消息,单击“send”按钮,这个消息会显示在两个实例的文本框里。
4、你也可以启动Java(Swing)客户端,运行spring-flex-testdrive/bin/jmschat.bat。这个demo演示了如何在Flex和Java程序之间通过JMS的topic交换消息。
二、理解代码:
1、jmschat.mxml:
这个程序与chat.mxml是差不多的,只是producer和consumer的destination不同罢了。
<mx:Producer id="producer" destination="jms-chat" channelSet="{cs}"/>
<mx:Consumer id="consumer" destination="jms-chat" channelSet="{cs}" message="messageHandler(event.message)"/>
2、flex-servlet.xml :
jms-chat的消息服务配置也不同,使用的是<flex:jms-message-destination />,通过jms-destination指定JMS上的topic。chatTopic的配置在spring/infrastructure-config.xml中。
<flex:jms-message-destination id="jms-chat" jms-destination="chatTopic" />
3、infrastructure-config.xml
chatTopic的配置如下:
<bean id="chatTopic" class="org.apache.activemq.command.ActiveMQTopic">
<constructor-arg value="sampletopic.flex.jms.chat"/>
</bean>
4、JMSChat.java
本聊天程序另一个客户端,基于Swing的JAVA程序的源码。
5、ActiveMQ
本DEMO中使用的JMS服务器的是apache的ActiveMQ。在infrastructure-config.xml中配置:
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="vm:(broker:(tcp://localhost:61616)?persistent=false)?marshal=false"/>
</bean>
三、小结:
该程序的功能与chat demo是相同的,本demo的重点是展示BlazeDS与JMS的互通。关于BlazeDS与JMS关联的更多资源,可参看《BlazeDS开发文档》。