netty 4.1.31
服务端代码
import com.crane.mudal.project.socket.WebsocketServer;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.handler.timeout.IdleStateHandler;
import org.springframework.boot.ApplicationArguments;
import java.util.concurrent.TimeUnit;
public class NettyServer {
private static final int port = 3000;
public void run() throws Exception{
//NioEventLoopGroup是用来处理IO操作的多线程事件循环器
EventLoopGroup bossGroup = new NioEventLoopGroup(); // 用来接收进来的连接
EventLoopGroup workerGroup = new NioEventLoopGroup();// 用来处理已经被接收的连接
try{
ServerBootstrap server =new ServerBootstrap();//是一个启动NIO服务的辅助启动类
server.group(bossGroup,workerGroup )
.channel(NioServerSocketChannel.class) // 这里告诉Channel如何接收新的连接
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
// 自定义处理类
ch.pipeline().addLast(new IdleStateHandler(31,0,0, TimeUnit.SECONDS));
ch.pipeline().addLast(new IdleStateTrigger());
ch.pipeline().addLast(new NettyServerHandler());
}