From 571c941ae82f1d9b3169f1453b5035bc8fcace79 Mon Sep 17 00:00:00 2001 From: xinian Date: Tue, 24 Feb 2026 07:31:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=B8=A2=E4=BA=BA?= =?UTF-8?q?=E8=B6=85=E6=97=B6=E5=A4=84=E7=90=86=E4=B8=AD=E7=9A=84=E7=8E=A9?= =?UTF-8?q?=E5=AE=B6=E4=BF=A1=E6=81=AF=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将踢人超时时间从3秒调整为10秒,并在超时处理中保存玩家信息 --- logic/service/player/player.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/logic/service/player/player.go b/logic/service/player/player.go index 7f2b7e15d..8917de8a5 100644 --- a/logic/service/player/player.go +++ b/logic/service/player/player.go @@ -259,11 +259,12 @@ func (player1 *Player) Kick(isquit bool) { // --- 新增超时机制核心代码 --- // 设定超时时间(可根据业务需求调整,这里以3秒为例) - const kickTimeout = 3 * time.Second + const kickTimeout = 10 * time.Second select { case <-CloseChan: // 正常流程:连接关闭回调已执行,CloseChan 被关闭 case <-time.After(kickTimeout): + player1.Service.Info.Save(*player1.Info) service.NewBaseSysLogService().RecordKick(uint32(player1.Info.UserID), fmt.Errorf("踢人操作超时(超时时间:%v)", kickTimeout).Error()) // 超时处理:避免永久阻塞,可添加日志便于排查问题 // 注意:这里不会中断 CloseWithCallback 的执行,仅解除当前协程的阻塞