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

This commit is contained in:
昔念
2026-04-24 23:02:28 +08:00
parent ab2928db1d
commit 1efc8517e1
2 changed files with 34 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ import (
"fmt"
"os"
"path/filepath"
"strings"
"time"
@@ -212,6 +213,11 @@ func (s *InfoService) Kick(id uint32) error {
_ = share.ShareManager.DeleteUserOnline(id)
return nil
}
if isDisconnectedLogicReverseClientError(callErr) {
_ = share.ShareManager.DeleteUserOnline(id)
cool.DeleteClientOnly(useid2)
return nil
}
return callErr
case <-time.After(3 * time.Second):
// 防止异常场景下无限等待;超时不按成功处理
@@ -227,6 +233,16 @@ func (s *InfoService) Kick(id uint32) error {
}
}
func isDisconnectedLogicReverseClientError(err error) bool {
if err == nil {
return false
}
errText := err.Error()
return strings.Contains(errText, "websocket routine exiting") ||
strings.Contains(errText, "sendRequest failed") ||
strings.Contains(errText, "closed out channel")
}
// saveToLocalFile 兜底保存将数据写入本地lose文件夹
func (s *InfoService) saveToLocalFile(player *model.PlayerInfo, err error) {
// 1. 创建lose文件夹如果不存在