| package com.xcong.excoin.netty.initalizer; | 
|   | 
| import com.xcong.excoin.netty.handler.WebSocketServerHandler; | 
| import io.netty.channel.ChannelInitializer; | 
| import io.netty.channel.ChannelPipeline; | 
| import io.netty.channel.socket.nio.NioSocketChannel; | 
| import io.netty.handler.codec.http.HttpObjectAggregator; | 
| import io.netty.handler.codec.http.HttpServerCodec; | 
| import io.netty.handler.stream.ChunkedWriteHandler; | 
| import io.netty.handler.timeout.IdleStateHandler; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Component; | 
|   | 
| /** | 
|  * @author wzy | 
|  * @email wangdoubleone@gmail.com | 
|  * @date 2019-05-06 | 
|  */ | 
| @Component | 
| public class WebSocketServerInitializer extends ChannelInitializer<NioSocketChannel> { | 
|   | 
|     @Autowired | 
|     private WebSocketServerHandler webSocketServerHandler; | 
|   | 
|     @Override | 
|     protected void initChannel(NioSocketChannel ch) throws Exception { | 
|         ChannelPipeline cp = ch.pipeline(); | 
|   | 
|         // http编码器 | 
|         cp.addLast(new HttpServerCodec()); | 
|         // 聚合器,使用websocket会用到 | 
|         cp.addLast(new HttpObjectAggregator(65536)); | 
|         cp.addLast(new ChunkedWriteHandler()); | 
|         // 心跳 | 
|         ch.pipeline().addLast(new IdleStateHandler(0, 10, 0)); | 
|         // 自定义业务handler | 
|         cp.addLast(webSocketServerHandler); | 
|     } | 
| } |