From 260e86e2cfda5ca2abaa62f0530cd43ccbb2d74d Mon Sep 17 00:00:00 2001 From: 1 <1@72wo.cn> Date: Thu, 30 Oct 2025 16:54:20 +0000 Subject: [PATCH 1/2] =?UTF-8?q?```=20refactor(socket):=20=E5=B0=86ClientDa?= =?UTF-8?q?ta=E7=BB=93=E6=9E=84=E5=8F=8A=E7=9B=B8=E5=85=B3=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E4=BB=8Ewscodec.go=E7=A7=BB=E8=87=B3SocketHandler=5FT?= =?UTF-8?q?omee.go=EF=BC=8C=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E7=BB=93=E6=9E=84```?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/service/player/SocketHandler_Tomee.go | 53 ++++++++++++++++++++ logic/service/player/wscodec.go | 55 --------------------- 2 files changed, 53 insertions(+), 55 deletions(-) diff --git a/logic/service/player/SocketHandler_Tomee.go b/logic/service/player/SocketHandler_Tomee.go index 16da83c3..bae67a02 100644 --- a/logic/service/player/SocketHandler_Tomee.go +++ b/logic/service/player/SocketHandler_Tomee.go @@ -4,6 +4,7 @@ import ( "blazing/common/socket/errorcode" "blazing/common/utils/bytearray" "blazing/cool" + "sync" "context" @@ -13,6 +14,7 @@ import ( "github.com/gogf/gf/v2/os/glog" "github.com/lunixbochs/struc" + "github.com/panjf2000/gnet/v2" ) // TomeeHeader 结构体字段定义 @@ -190,3 +192,54 @@ func (h *ClientData) Recv(data TomeeHeader) { t.SendPack(data.Pack(ret[0].Interface())) } + +type ClientData struct { + IsCrossDomain bool //是否跨域过 + Player *Player //客户实体 + Mu sync.Mutex + ERROR_CONNUT int + Wsmsg *WsCodec + Conn gnet.Conn + + CloseChan chan struct{} +} + +func NewClientData(c gnet.Conn) *ClientData { + // 创建事件处理器 + + cd := ClientData{ + IsCrossDomain: false, + Player: nil, + Conn: c, + Wsmsg: &WsCodec{}, + } + return &cd + +} + +func (h *ClientData) OnEvent(v []byte) { + + header := TomeeHeader{} + + tempdata := bytearray.CreateByteArray(v) + header.Len, _ = tempdata.ReadUInt32() + header.Version, _ = tempdata.ReadByte() + header.CMD, _ = tempdata.ReadUInt32() + //header.CMD = cmd.EnumCommandID(_CMD) + header.UserID, _ = tempdata.ReadUInt32() + + header.Result, _ = tempdata.ReadUInt32() + header.Data = tempdata.BytesAvailable() + if header.CMD > 1000 { + if h.Conn.Context().(*ClientData).Player == nil { + cool.Loger.Error(context.TODO(), "player is nil") + return + } + if h.Conn.Context().(*ClientData).Player.Info == nil { + cool.Loger.Error(context.TODO(), "player info is nil") + return + } + } + h.Recv(header) + //fmt.Println("接收封包", header) +} diff --git a/logic/service/player/wscodec.go b/logic/service/player/wscodec.go index 71a0f692..9a7270f2 100644 --- a/logic/service/player/wscodec.go +++ b/logic/service/player/wscodec.go @@ -1,13 +1,9 @@ package player import ( - "blazing/common/utils/bytearray" - "blazing/cool" "bytes" - "context" "errors" "io" - "sync" "github.com/gobwas/ws" "github.com/gobwas/ws/wsutil" @@ -193,54 +189,3 @@ func (w *WsCodec) readWsMessages() (messages []wsutil.Message, err error) { msgBuf.curHeader = nil } } - -type ClientData struct { - IsCrossDomain bool //是否跨域过 - Player *Player //客户实体 - Mu sync.Mutex - ERROR_CONNUT int - Wsmsg *WsCodec - Conn gnet.Conn - - CloseChan chan struct{} -} - -func NewClientData(c gnet.Conn) *ClientData { - // 创建事件处理器 - - cd := ClientData{ - IsCrossDomain: false, - Player: nil, - Conn: c, - Wsmsg: &WsCodec{}, - } - return &cd - -} - -func (h *ClientData) OnEvent(v []byte) { - - header := TomeeHeader{} - - tempdata := bytearray.CreateByteArray(v) - header.Len, _ = tempdata.ReadUInt32() - header.Version, _ = tempdata.ReadByte() - header.CMD, _ = tempdata.ReadUInt32() - //header.CMD = cmd.EnumCommandID(_CMD) - header.UserID, _ = tempdata.ReadUInt32() - - header.Result, _ = tempdata.ReadUInt32() - header.Data = tempdata.BytesAvailable() - if header.CMD > 1000 { - if h.Conn.Context().(*ClientData).Player == nil { - cool.Loger.Error(context.TODO(), "player is nil") - return - } - if h.Conn.Context().(*ClientData).Player.Info == nil { - cool.Loger.Error(context.TODO(), "player info is nil") - return - } - } - h.Recv(header) - //fmt.Println("接收封包", header) -} From 566c5cc3ce5115d804b550396356edab191b62db Mon Sep 17 00:00:00 2001 From: 1 <1@72wo.cn> Date: Thu, 30 Oct 2025 16:56:07 +0000 Subject: [PATCH 2/2] =?UTF-8?q?```=20refactor(socket):=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=95=B0=E6=8D=AE=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E9=80=BB=E8=BE=91=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E9=94=81=E5=B9=B6=E5=AE=8C=E5=96=84=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=AE=B0=E5=BD=95```?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/service/player/SocketHandler_Tomee.go | 10 ++-- logic/service/player/wscodec.go | 58 +-------------------- 2 files changed, 7 insertions(+), 61 deletions(-) diff --git a/logic/service/player/SocketHandler_Tomee.go b/logic/service/player/SocketHandler_Tomee.go index c62826cf..2c2fcbfb 100644 --- a/logic/service/player/SocketHandler_Tomee.go +++ b/logic/service/player/SocketHandler_Tomee.go @@ -200,6 +200,7 @@ type ClientData struct { ERROR_CONNUT int Wsmsg *WsCodec Conn gnet.Conn + SaveL sync.Once //保存锁 CloseChan chan struct{} } @@ -230,16 +231,17 @@ func (h *ClientData) OnEvent(v []byte) { header.Result, _ = tempdata.ReadUInt32() header.Data = tempdata.BytesAvailable() - if header.CMD > 1000 { + if header.CMD > 1001 { if h.Conn.Context().(*ClientData).Player == nil { - cool.Loger.Error(context.TODO(), "player is nil") + cool.Loger.Error(context.TODO(), header.UserID, "账号未注册") return } if h.Conn.Context().(*ClientData).Player.Info == nil { - cool.Loger.Error(context.TODO(), "player info is nil") + cool.Loger.Error(context.TODO(), header.UserID, "未创建角色") return } } + cool.Loger.Debug(context.TODO(), "接收数据", header.UserID, header.CMD) h.Recv(header) - //fmt.Println("接收封包", header) + } diff --git a/logic/service/player/wscodec.go b/logic/service/player/wscodec.go index 0e0e9b01..b9b9a682 100644 --- a/logic/service/player/wscodec.go +++ b/logic/service/player/wscodec.go @@ -188,60 +188,4 @@ func (w *WsCodec) readWsMessages() (messages []wsutil.Message, err error) { } msgBuf.curHeader = nil } -} -<<<<<<< HEAD -======= - -type ClientData struct { - IsCrossDomain bool //是否跨域过 - Player *Player //客户实体 - Mu sync.Mutex - ERROR_CONNUT int - Wsmsg *WsCodec - Conn gnet.Conn - SaveL sync.Once //保存锁 - - CloseChan chan struct{} -} - -func NewClientData(c gnet.Conn) *ClientData { - // 创建事件处理器 - - cd := ClientData{ - IsCrossDomain: false, - Player: nil, - Conn: c, - Wsmsg: &WsCodec{}, - } - return &cd - -} - -func (h *ClientData) OnEvent(v []byte) { - - header := TomeeHeader{} - - tempdata := bytearray.CreateByteArray(v) - header.Len, _ = tempdata.ReadUInt32() - header.Version, _ = tempdata.ReadByte() - header.CMD, _ = tempdata.ReadUInt32() - //header.CMD = cmd.EnumCommandID(_CMD) - header.UserID, _ = tempdata.ReadUInt32() - - header.Result, _ = tempdata.ReadUInt32() - header.Data = tempdata.BytesAvailable() - if header.CMD > 1001 { - if h.Conn.Context().(*ClientData).Player == nil { - cool.Loger.Error(context.TODO(), header.UserID, "账号未注册") - return - } - if h.Conn.Context().(*ClientData).Player.Info == nil { - cool.Loger.Error(context.TODO(), header.UserID, "未创建角色") - return - } - } - cool.Loger.Debug(context.TODO(), "接收数据", header.UserID, header.CMD) - h.Recv(header) - -} ->>>>>>> cccf26788e17151f26a5f7c0990c4801f54285b2 +} \ No newline at end of file