```
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

refactor(socket): 移除重复保存锁并优化panic错误处理

移除了ServerEvent.go中的sync.Once保存锁,因为可能存在重复保存问题,
同时将panic错误处理从fmt.Println改为使用cool.Logger.Error进行统一日志记录

feat(player): 优化踢人功能并添加超时机制

移除kick.go中的复杂异步超时逻辑
This commit is contained in:
昔念
2026-02-02 23:11:14 +08:00
parent cdb7cec4ad
commit b25f033939
8 changed files with 36 additions and 79 deletions

View File

@@ -65,11 +65,7 @@ func (s *Server) OnClose(c gnet.Conn, err error) (action gnet.Action) {
v, _ := c.Context().(*player.ClientData)
v.LF.Close()
if v.Player != nil {
v.SaveL.Do(func() { //使用保存锁,确保在踢人和掉线的时候只保存一次
v.Player.Save() //保存玩家数据
})
v.Player.Save() //保存玩家数据
}
@@ -110,7 +106,7 @@ func (s *Server) OnTraffic(c gnet.Conn) (action gnet.Action) {
if err := recover(); err != nil { // 恢复 panicerr 为 panic 错误值
// 1. 打印错误信息
fmt.Println(context.TODO(), "panic 错误:", err)
cool.Logger.Error(context.TODO(), "panic 错误:", err)
}
}()