<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
"
>
<!-- =============================================================== -->
<!-- MINA -->
<!-- =============================================================== -->
<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="java.net.SocketAddress">
<bean class="org.apache.mina.integration.beans.InetSocketAddressEditor" />
</entry>
</map>
</property>
</bean>
<bean id="defaultIOHandler" class="com.ai.mobile.push.handle.DefaultIOHandler" >
<property name="handlers">
<map>
<entry key="client_send_text">
<bean class="com.ai.server.push.handle.SendTextHandler" />
</entry>
<entry key="client_register">
<!-- <bean class="com.ai.server.push.handle.RegisterHandler" /> -->
<bean class="com.ai.server.push.handle.RegisterWithRouteHandler" />
</entry>
<entry key="client_unregister">
<!-- <bean class="com.ai.server.push.handle.UnregisterHandler" /> -->
<bean class="com.ai.server.push.handle.UnregisterWithRouteHandler" />
</entry>
<entry key="client_heartbeat">
<bean class="com.ai.mobile.push.handle.HeartbeatHandler"/>
</entry>
<entry key="client_session_closed">
<bean class="com.ai.server.push.handle.SessionClosedHandler"/>
</entry>
</map>
</property>
</bean>
<bean id="filterChainBuilder" class="org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder">
<property name="filters">
<map>
<entry key="executor">
<bean class="org.apache.mina.filter.executor.ExecutorFilter">
</bean>
</entry>
<entry key="logging">
<bean class="org.apache.mina.filter.logging.LoggingFilter" />
</entry>
<entry key="codec">
<bean class="org.apache.mina.filter.codec.ProtocolCodecFilter">
<constructor-arg>
<bean class="com.ai.mobile.push.codec.ServerCodecFactory" />
</constructor-arg>
</bean>
</entry>
</map>
</property>
</bean>
<!-- ???????????? -->
<bean id="sessionConfig" factory-bean="serverAcceptor" factory-method="getSessionConfig">
<property name="bothIdleTime" value="180" />
<property name="keepAlive" value="true" />
<property name="tcpNoDelay" value="true" />
</bean>
<bean id="serverAcceptor" class="org.apache.mina.transport.socket.nio.NioSocketAcceptor"
init-method="bind" destroy-method="unbind">
<property name="defaultLocalAddress" value=":7070" />
<property name="handler" ref="defaultIOHandler" />
<property name="filterChainBuilder" ref="filterChainBuilder" />
<property name="reuseAddress" value="true" /> <!-- 默认false -->
</bean>
<!-- session管理器 -->
<bean id="defaultSessionManager" class="com.ai.mobile.push.session.DefaultSessionManager" />
<bean id="defaultMessagePusher" class="com.ai.server.push.DefaultMessagePusher">
<property name="sessionManager" ref="defaultSessionManager" />
</bean>
</beans>
|