feat(logic): 优化命令行参数解析和服务器初始化逻辑

- 将命令行参数解析移至 controller 包的 init 函数中
- 添加 PortBL 配置项判断,实现 login 服务器的条件初始化
- 移除 main 函数中的重复代码
- 在 login 服务器中启用 pprof 性能分析工具
- 删除未使用的 Start 函数和相关代码
This commit is contained in:
2025-07-06 11:38:02 +08:00
parent 542fafbf34
commit c16eed6fe0
4 changed files with 18 additions and 41 deletions

View File

@@ -5,6 +5,7 @@ import (
"blazing/common/data/entity"
"blazing/common/socket/cmd"
"blazing/common/socket/handler"
"blazing/cool"
"blazing/logic/service"
"bytes"
@@ -12,6 +13,7 @@ import (
"fmt"
"reflect"
"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"
@@ -37,7 +39,8 @@ func parseCmd[T any](a T, data []byte) T {
}
func init() { //默认初始化扫描
// 解析命令行参数
cool.Config.PortBL = gcmd.GetOpt("port", "1").Uint32()
// 获取对象的反射值和类型
value := reflect.ValueOf(maincontroller)
@@ -54,23 +57,21 @@ func init() { //默认初始化扫描
methodValue := value.MethodByName(method.Name)
methodValue.Type().NumIn()
var func_cmd cmd.EnumCommandID
//params := []reflect.Value{}
//fmt.Println(methodValue.Type().NumIn())
// for i := 0; i < methodValue.Type().NumIn(); i++ {
// ttt := methodValue.Type().In(i)
// 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)
}
if cool.Config.PortBL == 0 && func_cmd > 1000 { //判断login服务器
break
}
if cool.Config.PortBL != 0 && func_cmd < 1000 { //判断login服务器
continue
}
// fmt.Println(methodValue.Interface().(func(gnet.Conn, handler.TomeeHeader)))
_, ok := core.Maincmdcache.LoadOrStore(func_cmd, methodValue) //TODO 待实现对不同用户初始化方法以取消全局cmdcache
@@ -79,6 +80,7 @@ func init() { //默认初始化扫描
}
}
}
func getcmd(t reflect.Type) cmd.EnumCommandID {
// 处理指针类型
if t.Kind() == reflect.Ptr {