refactor(common): 重构 Pack 函数并优化数据处理

- 重构了 Pack 函数,支持处理不同类型的 data 参数
- 优化了数据打包过程,使用反射处理结构体和切片
- 修改了 TomeeHeader 结构体,使用 EnumCommandID 类型
- 调整了 login 相关的结构体定义
- 优化了 main 函数中的数据处理逻辑
This commit is contained in:
2025-06-27 00:30:15 +08:00
parent feabc7153a
commit e25fe776eb
7 changed files with 76 additions and 90 deletions

View File

@@ -52,16 +52,19 @@ func init() { //默认初始化扫描
// 获取方法值
methodValue := value.MethodByName(method.Name)
methodValue.Type().NumIn()
var func_cmd uint32
var func_cmd cmd.EnumCommandID
//params := []reflect.Value{}
//fmt.Println(methodValue.Type().NumIn())
for i := 0; i < methodValue.Type().NumIn(); i++ {
// for i := 0; i < methodValue.Type().NumIn(); i++ {
ttt := methodValue.Type().In(i)
// ttt := methodValue.Type().In(i)
func_cmd = gconv.Uint32(getcmd(ttt))
// func_cmd = getcmd(ttt)
}
// }
// /ttt := methodValue.Type().In(0)
func_cmd = getcmd(methodValue.Type().In(0))
if !cmd.Isexist(cmd.CommandID, cmd.EnumCommandID(func_cmd)) {
fmt.Println("ID方法存在cmd未注册", func_cmd)
@@ -150,7 +153,9 @@ func Recv(c gnet.Conn, data handler.TomeeHeader) {
}
ret := cmdlister.Call(params)
switch ret[0].Interface().(type) {
//core.Pack(c, cmd cmd.EnumCommandID, data any, iserror uint32)
switch ret[0].Interface().(type) { //TODO 待修改
case []byte: //原始包
c.Write(ret[0].Interface().([]byte)) //这里直接发送原始包,应该是已经拼接过的原始包,通常不同使用