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) -}