From 7b2a22dde5974220b72833bf7b04a7994189e450 Mon Sep 17 00:00:00 2001 From: 1 <1@72wo.cn> Date: Fri, 17 Oct 2025 13:50:29 +0000 Subject: [PATCH] =?UTF-8?q?```fix(socket):=20=E4=BC=98=E5=8C=96TCP?= =?UTF-8?q?=E6=96=AD=E5=8C=85=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B0=83=E8=AF=95=E6=97=A5=E5=BF=97=E5=92=8C?= =?UTF-8?q?=E5=94=A4=E9=86=92=E6=9C=BA=E5=88=B6```?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/socket/ServerEvent.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/common/socket/ServerEvent.go b/common/socket/ServerEvent.go index 6413b04e..f68e8bec 100644 --- a/common/socket/ServerEvent.go +++ b/common/socket/ServerEvent.go @@ -155,14 +155,17 @@ func (s *Server) handleTcp(conn gnet.Conn) (action gnet.Action) { conn.Context().(*player.ClientData).IsCrossDomain = true data, err := s.codec.Decode(conn) if err != nil { - if err != codec.ErrIncompletePacket { - action = gnet.Close - return - } else { + + if err == codec.ErrIncompletePacket&&conn.InboundBuffered()>0 { + t, _ := conn.Peek(conn.InboundBuffered()) + cool.Loger.Debug(context.Background(), "断包", err.Error(), conn.InboundBuffered(), t) if err := conn.Wake(nil); err != nil { // wake up the connection manually to avoid missing the leftover data logging.Errorf("failed to wake up the connection, %v", err) return gnet.Close } + } else { + action = gnet.Close + return } }