From 05a1900d6013b2c669922991af5bd35e55217c2f Mon Sep 17 00:00:00 2001 From: xinian Date: Tue, 24 Feb 2026 04:22:02 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E6=9C=AA?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84lockfree=E7=9B=B8=E5=85=B3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/socket/ServerEvent.go | 2 +- logic/service/player/pack.go | 50 +++++++++++++++++------------------- 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/common/socket/ServerEvent.go b/common/socket/ServerEvent.go index 98333666d..d1354617b 100644 --- a/common/socket/ServerEvent.go +++ b/common/socket/ServerEvent.go @@ -86,7 +86,7 @@ func (s *Server) OnClose(c gnet.Conn, err error) (action gnet.Action) { //logging.Infof("conn[%v] disconnected", c.RemoteAddr().String()) v, _ := c.Context().(*player.ClientData) - v.LF.Close() + //v.LF.Close() if v.Player != nil { v.Player.Save() //保存玩家数据 diff --git a/logic/service/player/pack.go b/logic/service/player/pack.go index 171208660..395583595 100644 --- a/logic/service/player/pack.go +++ b/logic/service/player/pack.go @@ -7,7 +7,6 @@ import ( "encoding/binary" "encoding/hex" "sync" - "time" "context" @@ -15,7 +14,6 @@ import ( "fmt" "reflect" - "github.com/bruceshao/lockfree" "github.com/gobwas/ws" "github.com/gobwas/ws/wsutil" "github.com/gogf/gf/v2/os/glog" @@ -91,23 +89,23 @@ func XORDecryptU(encryptedData []byte, key uint32) []byte { // 遍历结构体方法并执行RECV_cmd func (h *ClientData) OnEvent(data common.TomeeHeader) { - defer func() { - if err := recover(); err != nil { // 恢复 panic,err 为 panic 错误值 - // 1. 打印错误信息 - if h.Player != nil { - if h.Player.Info != nil { - cool.Logger.Error(context.TODO(), "panic 错误:", cool.Config.ServerInfo.OnlineID, h.Player.Info.UserID, err) - } else { - cool.Logger.Error(context.TODO(), "panic 错误:", cool.Config.ServerInfo.OnlineID, err) + // defer func() { + // if err := recover(); err != nil { // 恢复 panic,err 为 panic 错误值 + // // 1. 打印错误信息 + // if h.Player != nil { + // if h.Player.Info != nil { + // cool.Logger.Error(context.TODO(), "panic 错误:", cool.Config.ServerInfo.OnlineID, h.Player.Info.UserID, err) + // } else { + // cool.Logger.Error(context.TODO(), "panic 错误:", cool.Config.ServerInfo.OnlineID, err) - } + // } - } else { - cool.Logger.Error(context.TODO(), "panic 错误:", err) - } + // } else { + // cool.Logger.Error(context.TODO(), "panic 错误:", err) + // } - } - }() + // } + // }() if data.CMD > 1001 { if h.Player == nil { @@ -212,7 +210,7 @@ type ClientData struct { ERROR_CONNUT int Wsmsg *WsCodec Conn gnet.Conn - LF *lockfree.Lockfree[common.TomeeHeader] + //LF *lockfree.Lockfree[common.TomeeHeader] //SaveL sync.Once //保存锁 //SaveDone chan struct{} @@ -227,19 +225,19 @@ func NewClientData(c gnet.Conn) *ClientData { Conn: c, Wsmsg: &WsCodec{}, } - cd.LF = lockfree.NewLockfree( - 8, - cd, - lockfree.NewSleepBlockStrategy(time.Millisecond), - ) - // 启动Lockfree - if err := cd.LF.Start(); err != nil { - panic(err) - } + // cd.LF = lockfree.NewLockfree( + // 8, + // cd, + // lockfree.NewSleepBlockStrategy(time.Millisecond), + // ) // // 启动Lockfree // if err := cd.LF.Start(); err != nil { // panic(err) // } + // // // 启动Lockfree + // // if err := cd.LF.Start(); err != nil { + // // panic(err) + // // } return cd }