|
|
|
@ -15,7 +15,7 @@ import javax.annotation.Resource;
|
|
|
|
|
import java.net.InetSocketAddress;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Created by 1-point at 2021/9/7
|
|
|
|
|
* netty服务端初始化
|
|
|
|
|
*/
|
|
|
|
|
@Component
|
|
|
|
|
@Slf4j
|
|
|
|
@ -38,21 +38,21 @@ public class NettyServer {
|
|
|
|
|
|
|
|
|
|
@PostConstruct
|
|
|
|
|
public void start() throws InterruptedException {
|
|
|
|
|
boss= new NioEventLoopGroup(serverProperties.getBossThreadCount());
|
|
|
|
|
boss = new NioEventLoopGroup(serverProperties.getBossThreadCount());
|
|
|
|
|
worker = new NioEventLoopGroup(serverProperties.getWorkerThreadCount());
|
|
|
|
|
ServerBootstrap bootstrap = new ServerBootstrap();
|
|
|
|
|
bootstrap.group(boss, worker)
|
|
|
|
|
// 指定Channel
|
|
|
|
|
.channel(NioServerSocketChannel.class)
|
|
|
|
|
//使用指定的端口设置套接字地址
|
|
|
|
|
.localAddress(new InetSocketAddress(serverProperties.getPort()))
|
|
|
|
|
//服务端可连接队列数,对应TCP/IP协议listen函数中backlog参数
|
|
|
|
|
.option(ChannelOption.SO_BACKLOG, 1024)
|
|
|
|
|
//设置TCP长连接,一般如果两个小时内没有数据的通信时,TCP会自动发送一个活动探测数据报文
|
|
|
|
|
.childOption(ChannelOption.SO_KEEPALIVE, true)
|
|
|
|
|
//将小的数据包包装成更大的帧进行传送,提高网络的负载
|
|
|
|
|
.childOption(ChannelOption.TCP_NODELAY, true)
|
|
|
|
|
.childHandler(serverInitializer);
|
|
|
|
|
// 指定Channel
|
|
|
|
|
.channel(NioServerSocketChannel.class)
|
|
|
|
|
//使用指定的端口设置套接字地址
|
|
|
|
|
.localAddress(new InetSocketAddress(serverProperties.getPort()))
|
|
|
|
|
//服务端可连接队列数,对应TCP/IP协议listen函数中backlog参数
|
|
|
|
|
.option(ChannelOption.SO_BACKLOG, 1024)
|
|
|
|
|
//设置TCP长连接,一般如果两个小时内没有数据的通信时,TCP会自动发送一个活动探测数据报文
|
|
|
|
|
.childOption(ChannelOption.SO_KEEPALIVE, true)
|
|
|
|
|
//将小的数据包包装成更大的帧进行传送,提高网络的负载
|
|
|
|
|
.childOption(ChannelOption.TCP_NODELAY, true)
|
|
|
|
|
.childHandler(serverInitializer);
|
|
|
|
|
ChannelFuture future = bootstrap.bind().sync();
|
|
|
|
|
if (future.isSuccess()) {
|
|
|
|
|
log.info("Start netty server successfully");
|
|
|
|
|