Flex集成spring实现消息推送
来源:互联网 发布:python 获取主机名 编辑:程序博客网 时间:2024/05/06 08:22
本文章适合对blazdes和spring都有所了解的人
1. 实现环境
Web服务器:tomcat6.x
依赖库包:org.springframework.flex-1.0.3.RELEASE.jar,spring的库包(3.0.0.m2版本),
blazds的库包
2. 配置文件
2.1 配置文件结构
2.2 Web.xml
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>SpringDispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-name>SpringDispatcher</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
2.3 Flex文件夹下配置文件
需要修改的是,如果我们选择的是通道是my-polling-amf,
对应的配置文件内容如下,主意endpoint的url元素的值,如果我们修改web.xml中DispatcherServlet的映射路径,如将
<servlet-name>SpringDispatcher</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
修改为
<servlet-name>SpringDispatcher</servlet-name>
<url-pattern>/spring/*</url-pattern>
</servlet-mapping>
则endpoint的url修改如下
http://{server.name}:{server.port}/{context.root}/spring/messagebroker/amfpolling
<channel-definitionid="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>4</polling-interval-seconds>
</properties>
</channel-definition>
当web服务器不是tomcat时,注意修改serverice-config.xml中<security>的内容
2.4 Spring的中的相关配置
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:flex="http://www.springframework.org/schema/flex"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/flex
http://www.springframework.org/schema/flex/spring-flex-1.0.xsd"default-autowire="byName">
<flex:message-broker>
<flex:message-servicedefault-adapter-id="actionscript"default-channels="my-polling-amf"/>
</flex:message-broker>
<flex:message-destinationid="topicDestination"
channels="my-polling-amf"
allow-subtopics="true"
subscription-timeout-minutes="3"
subtopic-separator="."/>
<beanid="myConfigProcess"class="com.creaway.util.MessageServiceProcessor"></bean>
</beans>
其中com.creaway.util.MessageServiceProcessor实现代码如下
package com.creaway.util;
importorg.springframework.flex.config.MessageBrokerConfigProcessor;
import flex.messaging.MessageBroker;
/**
* @authorzhl
* @qq 40303490
* @date 2013-4-19
*/
public class MessageServiceProcessor implements MessageBrokerConfigProcessor {
@Override
public MessageBroker processAfterStartup(MessageBroker broker){
broker.getServices();
return broker;
}
@Override
public MessageBroker processBeforeStartup(MessageBroker broker){
// TODO Auto-generatedmethod stub
return broker;
}
}
2.5 发布消息的java代码
if(broker==null)
{
broker = MessageBroker.getMessageBroker("_messageBroker");
}
try
{
if(broker!=null)
{
Object messageBody = "messagebody obj";
if(messageBody==null)
{
log.error("主题 "+topic+"产生消息失败!");
}
else
{
AsyncMessage msg = new AsyncMessage();
msg.setMessageId(UUIDUtils.createUUID());
msg.setDestination(destination);
msg.setHeader(AsyncMessage.SUBTOPIC_HEADER_NAME,topic);
msg.setBody(messageBody);
broker.routeMessageToService(msg,null);
}
}
}
catch(Exception e)
{
e.printStackTrace();
log.error(e.toString());
}
消息发布由MessageBroker的routeMessageToService方法来实现,通过静态方法MessageBroker.getMessageBroker("_messageBroker")获取实例,如果在配置元素<flex:message- broker >中没有指定broker的id名称,默认为_messageBroker
<flex:message-destinationid="topicDestination"/>
和 msg.setDestination(destination)中的值一致;
msg.setHeader(AsyncMessage.SUBTOPIC_HEADER_NAME,topic)中的topic和flex前端代码中的订阅主题一致
- Flex集成spring实现消息推送
- 推送消息----blazeds----flex----spring
- spring集成mina 实现消息推送以及转发
- Spring WebSocket实现消息推送
- spring boot 集成websocket实现实时推送
- flex+blazeds+java+spring后台消息推送,有界面维护
- flex+blazeds+java+spring后台消息推送,有界面维护
- flex+blazeds+java+spring后台消息推送,有界面维护
- Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送 【转】
- 原 Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送
- 1171 -- 荷兰国旗问题
- log4J的配置文件的介绍(基础架构&配置项解析)
- Python 标准库 urllib2 的使用细节
- nyoj——673 悟空的难题
- 1172 -- 精 挑 细 选
- Flex集成spring实现消息推送
- web项目启动时,执行某个方法
- 1173 -- 兰州烧饼
- JSON详解
- 1055. The World's Richest (25)
- PAT说明
- 1174 -- 正三角形的外接圆面积
- js面向对象轮播
- Qt——文件映射