package chat.server.netty; import org.apache.log4j.Logger; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.socket.SocketChannel; public class NettyServerBootstrap extends ServerBootstrap { protected static Logger logger; protected static int nettySoBacklog; protected static boolean nettySoReuseaddr; protected static boolean nettyTcpNodelay; protected static boolean nettySoKeepalive; static { logger = Logger.getLogger(NettyServerBootstrap.class); } public NettyServerBootstrap(NettyAcceptor acceptor, ChannelInitializer initializer) { init(acceptor, initializer); } private void init(NettyAcceptor acceptor, ChannelInitializer initializer) { group(acceptor.getBossGroup(), acceptor.getWorkerGroup()); channel(acceptor.getChannelClass()); childHandler(initializer); option(ChannelOption.SO_BACKLOG, 10240); // 服务端可连接队列大小 option(ChannelOption.SO_REUSEADDR, true); childOption(ChannelOption.SO_KEEPALIVE, true); childOption(ChannelOption.TCP_NODELAY, true); childOption(ChannelOption.SO_SNDBUF, 1024*64); childOption(ChannelOption.SO_RCVBUF, 1024*64); childHandler(initializer); } }