diff --git a/common/socket/ServerEvent.go b/common/socket/ServerEvent.go index 9374db9e..6db74c93 100644 --- a/common/socket/ServerEvent.go +++ b/common/socket/ServerEvent.go @@ -2,10 +2,9 @@ package socket import ( "context" - "encoding/hex" - "fmt" "log" "os" + "runtime/debug" "sync/atomic" "time" @@ -43,12 +42,15 @@ func (s *Server) Stop() error { } func (s *Server) OnClose(c gnet.Conn, _ error) (action gnet.Action) { - defer func() { - if r := recover(); r != nil { - fmt.Println("Recovered in onclose", r) + if err := recover(); err != nil { // 恢复 panic,err 为 panic 错误值 + // 1. 打印错误信息 + log.Printf("捕获到 panic 错误:%v", err) + // 2. 打印完整调用堆栈(debug.Stack() 获取堆栈字节流,转为字符串) + log.Printf("panic 详细堆栈:\n%s", debug.Stack()) } }() + atomic.AddInt64(&s.connected, -1) //logging.Infof("conn[%v] disconnected", c.RemoteAddr().String()) v, _ := c.Context().(*player.ClientData) @@ -70,7 +72,7 @@ func (s *Server) OnClose(c gnet.Conn, _ error) (action gnet.Action) { } func (s *Server) OnTick() (delay time.Duration, action gnet.Action) { cool.Loger.Infof(context.Background(), "[connected-count=%v]", atomic.LoadInt64(&s.connected)) - if s.quit { + if s.quit && atomic.LoadInt64(&s.connected) == 0 { //执行正常退出逻辑 os.Exit(0) } @@ -96,8 +98,11 @@ func (s *Server) OnOpen(conn gnet.Conn) (out []byte, action gnet.Action) { func (s *Server) OnTraffic(c gnet.Conn) (action gnet.Action) { defer func() { - if r := recover(); r != nil { - fmt.Println("Recovered in OnTraffic", r) + if err := recover(); err != nil { // 恢复 panic,err 为 panic 错误值 + // 1. 打印错误信息 + log.Printf("捕获到 panic 错误:%v", err) + // 2. 打印完整调用堆栈(debug.Stack() 获取堆栈字节流,转为字符串) + log.Printf("panic 详细堆栈:\n%s", debug.Stack()) } }() if s.network != "tcp" { @@ -149,9 +154,7 @@ func (s *Server) OnTraffic(c gnet.Conn) (action gnet.Action) { } }) - if err != nil { - fmt.Println("work2", err) - } + } return gnet.None @@ -175,7 +178,7 @@ func (s *Server) handleTcp(conn gnet.Conn) (action gnet.Action) { } - cool.Loger.Debug(context.Background(), "原始数据", hex.EncodeToString(data)) + //cool.Loger.Debug(context.Background(), "原始数据", hex.EncodeToString(data)) t := conn.Context().(*player.ClientData) err = s.workerPool.Submit(func() { //TODO 这里可能存在顺序执行问题,待修复 diff --git a/logic/logic2 b/logic/logic2 deleted file mode 100644 index c243b4a7..00000000 Binary files a/logic/logic2 and /dev/null differ diff --git a/logic/service/fight/info/BattleSkillEntity.go b/logic/service/fight/info/BattleSkillEntity.go index 008f38f7..32fbba51 100644 --- a/logic/service/fight/info/BattleSkillEntity.go +++ b/logic/service/fight/info/BattleSkillEntity.go @@ -71,7 +71,7 @@ func CreateSkill(skill *model.SkillInfo, rand *rand.Rand, pet *BattlePetEntity) } ret.Info = skill - fmt.Printf("技能2 %p\n", ret.Info) + return &ret } diff --git a/logic/service/player/player.go b/logic/service/player/player.go index 593a0fa2..41b7640f 100644 --- a/logic/service/player/player.go +++ b/logic/service/player/player.go @@ -8,7 +8,9 @@ import ( "blazing/common/utils/bytearray" "blazing/cool" "fmt" + "log" "math/rand" + "runtime/debug" "strings" "blazing/logic/service/common" @@ -90,7 +92,14 @@ type eventHandler struct { } func (h *eventHandler) OnEvent(v []byte) { - + defer func() { + if err := recover(); err != nil { // 恢复 panic,err 为 panic 错误值 + // 1. 打印错误信息 + log.Printf("捕获到 panic 错误:%v", err) + // 2. 打印完整调用堆栈(debug.Stack() 获取堆栈字节流,转为字符串) + log.Printf("panic 详细堆栈:\n%s", debug.Stack()) + } + }() header := TomeeHeader{} tempdata := bytearray.CreateByteArray(v) diff --git a/modules/blazing/controller/admin/login.go b/modules/blazing/controller/admin/login.go index e9588567..17a56ecd 100644 --- a/modules/blazing/controller/admin/login.go +++ b/modules/blazing/controller/admin/login.go @@ -41,10 +41,7 @@ func init() { cool.RegisterController(blazing_controller) } func (c *BlazingController) GetSession(ctx context.Context, req *SessionReq) (res *SessionRes, err error) { - // res = &DemoSampleWelcomeRes{ - // BaseRes: cool.Ok("Welcome to Cool Admin Go"), - // Data: gjson.New(`{"name": "Cool Admin Go", "age":0}`), - // } + res = &SessionRes{ Msg: "success", Code: 200,