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);
|
}
|
}
|