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<SocketChannel> initializer) {
|
init(acceptor, initializer);
|
}
|
|
private void init(NettyAcceptor acceptor, ChannelInitializer<SocketChannel> 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);
|
}
|
|
}
|