nadron.beans.netty-handlers.xml Maven / Gradle / Ivy
<?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:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd"> <import resource="service-beans.xml" /> <!-- Netty and decoders encoders and handlers --> <bean id="stringDecoder" class="io.netty.handler.codec.string.StringDecoder" /> <bean id="stringMessageEncoder" class="io.netty.handler.codec.string.StringEncoder" /> <bean id="base64Decoder" class="io.netty.handler.codec.base64.Base64Decoder" /> <bean id="base64Encoder" class="io.netty.handler.codec.base64.Base64Encoder" /> <bean id="nulEncoder" class="io.nadron.handlers.netty.NulEncoder" /> <bean id="lengthFieldPrepender" class="io.netty.handler.codec.LengthFieldPrepender"> <constructor-arg type="int" index="0" value="2" /> <constructor-arg type="boolean" index="1" value="false" /> </bean> <bean id="lengthFieldBasedFrameDecoder" class="io.netty.handler.codec.LengthFieldBasedFrameDecoder" scope="prototype"> <constructor-arg type="int" index="0" value="4096" /> <constructor-arg type="int" index="1" value="0" /> <constructor-arg type="int" index="2" value="2" /> <constructor-arg type="int" index="3" value="0" /> <constructor-arg type="int" index="4" value="2" /> </bean> <bean id="flashPolicyServerDecoder" class="io.nadron.handlers.netty.FlashPolicyServerDecoder" /> <bean id="flashPolicyServerHandler" class="io.nadron.handlers.netty.FlashPolicyServerHandler" scope="prototype"> <constructor-arg value="${tcp.port}" /> </bean> <bean id="AMF3ToJavaObjectDecoder" class="io.nadron.handlers.netty.AMF3ToJavaObjectDecoder" /> <bean id="javaToAMF3Encoder" class="io.nadron.handlers.netty.JavaObjectToAMF3Encoder" /> <bean id="eventDecoder" class="io.nadron.handlers.netty.EventDecoder" /> <bean id="eventEncoder" class="io.nadron.handlers.netty.EventEncoder" /> <bean id="messageBufferEventDecoder" class="io.nadron.handlers.netty.MessageBufferEventDecoder" /> <bean id="messageBufferEventEncoder" class="io.nadron.handlers.netty.MessageBufferEventEncoder" /> <bean id="udpEventEncoder" class="io.nadron.handlers.netty.UDPEventEncoder" /> <bean id="udpUpstreamHandler" class="io.nadron.handlers.netty.UDPUpstreamHandler"> <property name="udpSessionRegistry" ref="udpSessionRegistry" /> <property name="messageBufferEventDecoder" ref="messageBufferEventDecoder" /> </bean> <bean id="loginHandler" class="io.nadron.handlers.netty.LoginHandler"> <property name="lookupService" ref="lookupService" /> <property name="udpSessionRegistry" ref="udpSessionRegistry" /> <property name="idGeneratorService" ref="simpleUniqueIdGenerator" /> <property name="reconnectRegistry" ref="reconnectSessionRegistry" /> </bean> <bean id="webSocketLoginHandler" class="io.nadron.handlers.netty.WebSocketLoginHandler"> <property name="lookupService" ref="lookupService" /> <property name="idGeneratorService" ref="simpleUniqueIdGenerator" /> <property name="reconnectRegistry" ref="reconnectSessionRegistry" /> <property name="jackson" ref="jackson" /> </bean> <bean id="textWebsocketEncoder" class="io.nadron.handlers.netty.TextWebsocketEncoder"> <property name="jackson" ref="jackson" /> </bean> <bean id="textWebsocketDecoder" class="io.nadron.handlers.netty.TextWebsocketDecoder"> <property name="jackson" ref="jackson" /> </bean> <bean id="msgPackDecoder" class="io.nadron.handlers.netty.MsgPackDecoder"> <property name="msgPack" ref="msgPack" /> </bean> <bean id="msgPackEncoder" class="io.nadron.handlers.netty.MsgPackEncoder"> <property name="msgPack" ref="msgPack" /> </bean> <bean id="bossGroup" class="io.netty.channel.nio.NioEventLoopGroup" destroy-method="shutdownGracefully"> <constructor-arg type="int" index="0" value="${bossThreadCount}" /> <constructor-arg index="1" ref="bossThreadFactory" /> </bean> <bean id="workerGroup" class="io.netty.channel.nio.NioEventLoopGroup" destroy-method="shutdownGracefully"> <constructor-arg type="int" index="0" value="${workerThreadCount}" /> <constructor-arg index="1" ref="workerThreadFactory" /> </bean> <bean id="bossThreadFactory" class="io.nadron.concurrent.NamedThreadFactory"> <constructor-arg type="String" value="Server-Boss" /> </bean> <bean id="workerThreadFactory" class="io.nadron.concurrent.NamedThreadFactory"> <constructor-arg type="String" index="0" value="Server-Worker" /> </bean> <!-- Netty options for server bootstrap --> <util:map id="tcpChannelOptions" map-class="java.util.HashMap"> <entry> <key><util:constant static-field="io.netty.channel.ChannelOption.SO_KEEPALIVE"/></key> <value type="java.lang.Boolean">${so.keepalive}</value> </entry> <entry> <key><util:constant static-field="io.netty.channel.ChannelOption.SO_BACKLOG"/></key> <value type="java.lang.Integer">${so.backlog}</value> </entry> </util:map> <util:map id="udpChannelOptions" map-class="java.util.HashMap"> <entry> <key><util:constant static-field="io.netty.channel.ChannelOption.SO_SNDBUF"/></key> <value type="java.lang.Integer">${so.sndbuf}</value> </entry> <entry> <key><util:constant static-field="io.netty.channel.ChannelOption.SO_RCVBUF"/></key> <value type="java.lang.Integer">${so.rcvbuf}</value> </entry> <entry> <key><util:constant static-field="io.netty.channel.ChannelOption.SO_BROADCAST"/></key> <value type="java.lang.Boolean">${so.broadcast}</value> </entry> </util:map> <bean id="tcpConfig" class="io.nadron.server.netty.NettyConfig"> <property name="channelOptions" ref="tcpChannelOptions"/> <property name="bossGroup" ref="bossGroup"/> <property name="workerGroup" ref="workerGroup"/> <property name="portNumber" value="${tcp.port}"/> </bean> <bean id="udpConfig" class="io.nadron.server.netty.NettyConfig"> <property name="channelOptions" ref="udpChannelOptions"/> <property name="bossGroup" ref="bossGroup"/> <property name="portNumber" value="${udp.port}"/> </bean> <bean id="flashConfig" class="io.nadron.server.netty.NettyConfig"> <property name="channelOptions" ref="tcpChannelOptions"/> <property name="bossGroup" ref="bossGroup"/> <property name="workerGroup" ref="workerGroup"/> <property name="portNumber" value="${flash.policyport}"/> </bean> </beans>