fix(player): 修复玩家发送数据包时的空指针异常

- 将 `ClientData` 中的 `sync.Mutex` 替换为 `sync.RWMutex` 以支持读写锁
- 在 `ServerEvent.go` 中添加读锁保护对客户端数据的访问
- 增加对 `MainConn` 及其上下文是否存在判断,防止空指针引用
```
This commit is contained in:
2025-11-01 01:08:47 +08:00
parent eac1d41043
commit 008701d3de
3 changed files with 12 additions and 2 deletions

View File

@@ -151,7 +151,9 @@ func (s *Server) OnTraffic(c gnet.Conn) (action gnet.Action) {
t := c.Context().(*player.ClientData)
//client := conn.RemoteAddr().String()
s.workerPool.Submit(func() { //TODO 这里可能存在顺序执行问题,待修复
t.Mu.RLock()
t.OnEvent(msg.Payload)
t.Mu.RUnlock()
})