diff --git a/net/src/main/java/com/zfoo/net/core/proxy/TunnelProtocolClient2Server.java b/net/src/main/java/com/zfoo/net/core/proxy/TunnelProtocolClient2Server.java index ed1be6ff..8a3497db 100644 --- a/net/src/main/java/com/zfoo/net/core/proxy/TunnelProtocolClient2Server.java +++ b/net/src/main/java/com/zfoo/net/core/proxy/TunnelProtocolClient2Server.java @@ -80,23 +80,5 @@ public class TunnelProtocolClient2Server { } // ----------------------------------------------------------------------------------------------------------------- - public static void read(Channel channel, ByteBuf in) { - var flag = in.readByte(); - if (flag == FLAG_PACKET) { - var sid = ByteBufUtils.readLong(in); - var uid = ByteBufUtils.readLong(in); - var session = NetContext.getSessionManager().getServerSession(sid); - if (SessionUtils.isActive(session)) { - session.getChannel().writeAndFlush(TunnelProtocolServer2Client.valueOf(sid, uid, in)); - } else { - ReferenceCountUtil.release(in); - } - } else if (flag == FLAG_REGISTER) { - TunnelServer.tunnels.add(channel); - ReferenceCountUtil.release(in); - } else if (flag == FLAG_HEARTBEAT) { - ReferenceCountUtil.release(in); - } - } } diff --git a/net/src/main/java/com/zfoo/net/core/proxy/handler/TunnelServerCodecHandler.java b/net/src/main/java/com/zfoo/net/core/proxy/handler/TunnelServerCodecHandler.java index 3d813012..9f996e6b 100644 --- a/net/src/main/java/com/zfoo/net/core/proxy/handler/TunnelServerCodecHandler.java +++ b/net/src/main/java/com/zfoo/net/core/proxy/handler/TunnelServerCodecHandler.java @@ -13,15 +13,21 @@ package com.zfoo.net.core.proxy.handler; +import com.zfoo.net.NetContext; import com.zfoo.net.core.proxy.TunnelProtocolClient2Server; import com.zfoo.net.core.proxy.TunnelProtocolServer2Client; +import com.zfoo.net.core.proxy.TunnelServer; import com.zfoo.net.packet.PacketService; +import com.zfoo.net.util.SessionUtils; +import com.zfoo.protocol.buffer.ByteBufUtils; import com.zfoo.protocol.util.IOUtils; import com.zfoo.protocol.util.StringUtils; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.ByteToMessageCodec; import io.netty.util.ReferenceCountUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; @@ -30,6 +36,8 @@ import java.util.List; */ public class TunnelServerCodecHandler extends ByteToMessageCodec { + private static final Logger logger = LoggerFactory.getLogger(TunnelServerCodecHandler.class); + @Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List out) { // 不够读一个int @@ -50,12 +58,41 @@ public class TunnelServerCodecHandler extends ByteToMessageCodec