feat(logic): 优化命令行参数解析和服务器初始化逻辑
- 将命令行参数解析移至 controller 包的 init 函数中 - 添加 PortBL 配置项判断,实现 login 服务器的条件初始化 - 移除 main 函数中的重复代码 - 在 login 服务器中启用 pprof 性能分析工具 - 删除未使用的 Start 函数和相关代码
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user