From 06c45f4fefa7d68a5a8ac195994d2b6b61322738 Mon Sep 17 00:00:00 2001 From: wujiawei <1207537021@qq.com> Date: Sun, 22 Sep 2024 21:33:17 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90fix=E3=80=91=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=B8=97=E9=80=8F=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E9=97=AE=E9=A2=98=20=E9=80=9A=E9=81=93=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tyClientPermeateServerTransferHandler.java | 2 - ...ttyClientPermeateServerVisitorHandler.java | 13 +----- ...ntPermeateServerVisitorTransferSocket.java | 16 ++----- ...eateChannelInitSuccessfulTypeAdvanced.java | 1 + .../pom.xml | 46 +++++++++---------- .../pom.xml | 46 +++++++++---------- 6 files changed, 54 insertions(+), 70 deletions(-) diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerTransferHandler.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerTransferHandler.java index 72ff3fb..1fb5a9f 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerTransferHandler.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerTransferHandler.java @@ -5,7 +5,6 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import lombok.extern.slf4j.Slf4j; -import org.framework.lazy.cloud.network.heartbeat.common.ChannelContext; import org.framework.lazy.cloud.network.heartbeat.common.MessageType; import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelTypeAdapter; @@ -41,7 +40,6 @@ public class NettyClientPermeateServerTransferHandler extends SimpleChannelInbou String visitorId = ChannelAttributeKeyUtils.getVisitorId(ctx.channel()); // 关闭访客 Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(ctx.channel()); - ChannelContext.ClientChannel clientChannel = ChannelContext.get(clientId); if (nextChannel != null) { // 上报关闭服务端客户端真实通道 NettyProxyMsg closeVisitorMsg = new NettyProxyMsg(); diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerVisitorHandler.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerVisitorHandler.java index 0eb3297..a94c7cf 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerVisitorHandler.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerVisitorHandler.java @@ -42,20 +42,14 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun // 先不读取访客数据 visitorChannel.config().setOption(ChannelOption.AUTO_READ, false); - // 生成访客ID String visitorId = UUID.randomUUID().toString(); - // 绑定访客真实通道 - NettyRealIdContext.pushReal(visitorChannel, visitorId); - // 当前通道绑定访客ID - ChannelAttributeKeyUtils.buildVisitorId(visitorChannel, visitorId); - internalNetworkPermeateServerVisitor.setVisitorId(visitorId); // 判断是否有可用的通道 如果没有创建新的通道 // Channel transferChannel = nettyChannelPool.availableChannel(visitorId); // 创建访客连接服务端通道 - NettyClientPermeateServerVisitorTransferSocket.buildTransferServer(internalNetworkPermeateServerVisitor); - log.info("客户端渗透服务端访客端口连接成功了"); + NettyClientPermeateServerVisitorTransferSocket.buildTransferServer(internalNetworkPermeateServerVisitor,visitorChannel); + log.debug("客户端渗透服务端访客端口连接成功了"); super.channelActive(ctx); } @@ -116,9 +110,6 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun myMsg.setVisitorId(visitorId); nextChannel.writeAndFlush(myMsg); } - // 关闭 访客通信通道、访客真实通道 - NettyRealIdContext.clear(visitorId); - NettyCommunicationIdContext.clear(visitorId); log.warn("【客户端渗透服务端】访客端口断开连接"); super.channelInactive(ctx); } diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorTransferSocket.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorTransferSocket.java index 6b7797b..a1bf5c4 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorTransferSocket.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorTransferSocket.java @@ -10,9 +10,7 @@ import org.framework.lazy.cloud.network.heartbeat.client.config.NettyClientPrope import org.framework.lazy.cloud.network.heartbeat.client.netty.InternalNetworkPermeateServerVisitor; import org.framework.lazy.cloud.network.heartbeat.client.netty.filter.NettyClientPermeateServerTransferFilter; import org.framework.lazy.cloud.network.heartbeat.common.MessageType; -import org.framework.lazy.cloud.network.heartbeat.common.NettyCommunicationIdContext; import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; -import org.framework.lazy.cloud.network.heartbeat.common.NettyRealIdContext; import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelTypeAdapter; import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; @@ -26,8 +24,8 @@ public class NettyClientPermeateServerVisitorTransferSocket { /** * 连接服务端通信通道 */ - public static void buildTransferServer(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor) { - newTransferConnect2Server(internalNetworkPermeateServerVisitor); + public static void buildTransferServer(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor, Channel visitorChannel) { + newTransferConnect2Server(internalNetworkPermeateServerVisitor,visitorChannel); } @@ -36,7 +34,7 @@ public class NettyClientPermeateServerVisitorTransferSocket { *
* internalNetworkPermeateServerVisitor
*/
- protected static void newTransferConnect2Server(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor) {
+ protected static void newTransferConnect2Server(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor, Channel visitorChannel) {
Bootstrap bootstrap = new Bootstrap();
bootstrap.group(eventLoopGroup)
@@ -87,17 +85,13 @@ public class NettyClientPermeateServerVisitorTransferSocket {
myMsg.setVisitorId(visitorId);
channel.writeAndFlush(myMsg);
- // 绑定客户端真实通信通道
- NettyCommunicationIdContext.pushVisitor(channel, visitorId);
ChannelAttributeKeyUtils.buildVisitorId(channel, visitorId);
ChannelAttributeKeyUtils.buildClientId(channel, clientId);
// 传输通道打开后自动读取
- Channel visitor = NettyRealIdContext.getReal(visitorId);
-
- ChannelAttributeKeyUtils.buildNextChannel(visitor, channel);
- ChannelAttributeKeyUtils.buildNextChannel(channel, visitor);
+ ChannelAttributeKeyUtils.buildNextChannel(visitorChannel, channel);
+ ChannelAttributeKeyUtils.buildNextChannel(channel, visitorChannel);
} else {
log.info("客户端渗透服务端通信通道中断....");
}
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientTransferClientPermeateChannelInitSuccessfulTypeAdvanced.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientTransferClientPermeateChannelInitSuccessfulTypeAdvanced.java
index d9987fc..5f45c1f 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientTransferClientPermeateChannelInitSuccessfulTypeAdvanced.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientTransferClientPermeateChannelInitSuccessfulTypeAdvanced.java
@@ -35,6 +35,7 @@ public class ServerHandleReportClientTransferClientPermeateChannelInitSuccessful
Channel nextTransferChannel = NettyTransferChannelContext.getVisitor(msgVisitorId);
ChannelAttributeKeyUtils.buildTransferNextChannel(nextTransferChannel,channel);
ChannelAttributeKeyUtils.buildTransferNextChannel(channel,nextTransferChannel);
+ NettyTransferChannelContext.clear(msgVisitorId);
Channel nextChannel = ChannelAttributeKeyUtils.getTransferNextChannel(channel);
diff --git a/wu-lazy-cloud-heartbeat-start/wu-lazy-cloud-heartbeat-client-start/pom.xml b/wu-lazy-cloud-heartbeat-start/wu-lazy-cloud-heartbeat-client-start/pom.xml
index fd80e75..bee107f 100644
--- a/wu-lazy-cloud-heartbeat-start/wu-lazy-cloud-heartbeat-client-start/pom.xml
+++ b/wu-lazy-cloud-heartbeat-start/wu-lazy-cloud-heartbeat-client-start/pom.xml
@@ -27,29 +27,29 @@