refactor(pack): 重构组包逻辑

- 移除 common/core/pack.go 文件
- 在 TomeeHeader 结构体中添加 Pack 方法实现组包功能
- 更新 Player 结构体和相关方法,使用 Conn 包装 gnet.Conn
- 修改控制器和服务中的组包调用,使用新的 Pack 方法
- 优化部分代码结构,提高可维护性
This commit is contained in:
2025-07-14 11:07:13 +08:00
parent 2d012b25dc
commit aeb0d4090e
8 changed files with 96 additions and 95 deletions

View File

@@ -14,13 +14,10 @@ import (
"fmt"
"reflect"
"github.com/gobwas/ws"
"github.com/gobwas/ws/wsutil"
"github.com/gogf/gf/v2/os/gcmd"
"github.com/gogf/gf/v2/os/glog"
"github.com/gogf/gf/v2/util/gconv"
"github.com/lunixbochs/struc"
"github.com/panjf2000/gnet/pkg/logging"
"github.com/panjf2000/gnet/v2"
)
@@ -202,21 +199,8 @@ func Recv(c gnet.Conn, data handler.TomeeHeader) {
}
ret := cmdlister.Call(params)
//return core.Pack(data.Handler.UserID, data.Handler.CMD, t1, 0)
//core.Pack(c, cmd cmd.EnumCommandID, data any, iserror uint32)
if c.Context().(*entity.ClientData).Getwsmsg().Upgraded {
// This is the echo server
err = wsutil.WriteServerMessage(c, ws.OpBinary, ret[0].Interface().([]byte))
if err != nil {
logging.Infof("conn[%v] [err=%v]", c.RemoteAddr().String(), err.Error())
return
}
} else {
_, err = c.Write(ret[0].Interface().([]byte))
if err != nil {
fmt.Println(err)
}
}
r := entity.Conn{c}
r.SendPack(ret[0].Interface().([]byte))
}

View File

@@ -1,7 +1,6 @@
package controller
import (
"blazing/common/core"
"blazing/logic/service/server"
"github.com/panjf2000/gnet/v2"
@@ -16,7 +15,7 @@ func (h Controller) GetServer(data server.SidInfo, c gnet.Conn) []byte { //这
ret.ServerList = server.GetServerInfoList()
tt := core.Pack(data.Head, ret)
tt := data.Head.Pack(ret)
//fmt.Println(hex.EncodeToString(tt))
// c.Write(tt)
return tt

View File

@@ -1,7 +1,6 @@
package controller
import (
"blazing/common/core"
"blazing/logic/service"
"blazing/logic/service/login"
"encoding/hex"
@@ -27,8 +26,8 @@ func (h *Controller) Login(data login.LoginSidInfo, c gnet.Conn) []byte { //这
data.Head.Version = "7"
data.Head.UserID = 99942
data.Head.Result = 0
fmt.Println(core.Pack(data.Head, t1[17:])[:40])
return core.Pack(data.Head, t1[17:])
fmt.Println(data.Head.Pack(t1[17:])[:40])
return data.Head.Pack(t1[17:])[:40]
//return //t1, _ := hex.DecodeString("000186A6683F89CF6E69656F0000000000000000000000000008000F00000000000000000000000000000000000000000000000000000001000001DB0000018B000000000000A8C000000000000000000000000000000000000000080001388000000001000000017FFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000064000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001FFFFFFFF000000004E4F4E4F0000000000000000000000000000000000000001000000010000000100000001000000010000000100000001000000000003030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000100000064000000000000000000000000000000000000001F000000000000006400000000000093F4000093F4000000D5000000F7000000AD00000088000000920000008C0000009C00000000000000000000000000000000000000000000000000000004000027900000001B00004E6200000014000028380000002800004E3E0000002368493DC60000000000000000000000000000000000000000000100000000000000A937000007D1000186A600000000000186A66E69656F00000000000000000000000000000000000000000000000F0000000000000000000001DB0000018B0000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF0000000000000001000000000000000000000000000000000000000000000000000000000000000000000000")
// return t1