From 0e7cd0b33ca4c93e1fd7d2a69a2f8c2f9a28ddec Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 22 Jul 2025 14:23:50 +0800 Subject: [PATCH] =?UTF-8?q?update=20=20netty=E5=BC=95=E5=85=A5=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E7=BA=BF=E7=A8=8B=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../netty/server/NettyServerManager.java | 2 ++ .../yunkuaichong/EchoServerHandler.java | 31 +++++++++++++++++++ .../NettyServerChannelInitializer.java | 10 ++++-- .../yunkuaichong/NettyServerHandler.java | 8 ++--- 4 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/EchoServerHandler.java diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/server/NettyServerManager.java b/jsowell-netty/src/main/java/com/jsowell/netty/server/NettyServerManager.java index 95dfd9e06..e886a19ab 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/server/NettyServerManager.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/server/NettyServerManager.java @@ -16,6 +16,8 @@ import io.netty.handler.logging.LogLevel; import io.netty.handler.logging.LoggingHandler; import io.netty.handler.timeout.IdleStateHandler; import io.netty.util.ResourceLeakDetector; +import io.netty.util.concurrent.DefaultEventExecutorGroup; +import io.netty.util.concurrent.EventExecutorGroup; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/EchoServerHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/EchoServerHandler.java new file mode 100644 index 000000000..17de54448 --- /dev/null +++ b/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/EchoServerHandler.java @@ -0,0 +1,31 @@ +package com.jsowell.netty.server.yunkuaichong; + +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 回复消息Handler + * + * @author Lemon + * @Date 2025/7/22 14:00:03 + */ +@ChannelHandler.Sharable +@Slf4j +@Component +public class EchoServerHandler extends ChannelInboundHandlerAdapter { + + @Override + public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { + if (msg == null || msg == "") { + log.info("服务端响应空的消息"); + return; + } + //将客户端的信息直接返回写入ctx + ctx.write(msg); + //刷新缓存区 + ctx.flush(); + } +} diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerChannelInitializer.java b/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerChannelInitializer.java index a8ecf9fab..cb713237d 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerChannelInitializer.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerChannelInitializer.java @@ -6,6 +6,8 @@ import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; import io.netty.handler.codec.bytes.ByteArrayDecoder; import io.netty.handler.timeout.IdleStateHandler; +import io.netty.util.concurrent.DefaultEventExecutorGroup; +import io.netty.util.concurrent.EventExecutorGroup; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -14,8 +16,8 @@ import java.util.concurrent.TimeUnit; @Component public class NettyServerChannelInitializer extends ChannelInitializer { - @Resource - NettyServerHandler nettyServerHandler; + // 引入业务线程池 + final EventExecutorGroup businessGroup = new DefaultEventExecutorGroup(16); @Override protected void initChannel(SocketChannel channel) throws Exception { @@ -28,7 +30,9 @@ public class NettyServerChannelInitializer extends ChannelInitializer