`` refactor(socket): 将ClientData结构及相关方法从wscodec.go移至SocketHandler_Tomee.go,优化代码组织结构``
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user