feat: 增加踢人超时处理中的玩家信息保存
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

将踢人超时时间从3秒调整为10秒,并在超时处理中保存玩家信息
This commit is contained in:
xinian
2026-02-24 07:31:21 +08:00
committed by cnb
parent 05a1900d60
commit 571c941ae8

View File

@@ -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 的执行,仅解除当前协程的阻塞