Merge branch 'main' of github.com:72wo/blazing
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,56 @@ 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
|
||||
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)
|
||||
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
@@ -192,57 +188,4 @@ 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
|
||||
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)
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user