refactor: 重构运行时ID组合逻辑

将硬编码的 ID 组合逻辑(100000*OnlineID + Port)提取为通用函数 ComposeRuntimeID,
使用 16 位位移掩码优化,并新增辅助方法与类型转换。同时修复踢人流程中的资源清理问题。
This commit is contained in:
xinian
2026-04-28 04:03:13 +08:00
parent deae6d371e
commit 7d49aaa212
10 changed files with 59 additions and 15 deletions

View File

@@ -190,6 +190,7 @@ func (s *InfoService) Kick(id uint32) error {
if !ok || cl == nil {
// 目标服务器不在线,清理僵尸在线标记并视为成功
_ = share.ShareManager.DeleteUserOnline(id)
cool.DeleteClientOnly(useid1)
return nil
}
@@ -211,6 +212,7 @@ func (s *InfoService) Kick(id uint32) error {
}
if cl2, ok2 := cool.GetClientOnly(useid2); !ok2 || cl2 == nil {
_ = share.ShareManager.DeleteUserOnline(id)
cool.DeleteClientOnly(useid2)
return nil
}
if isDisconnectedLogicReverseClientError(callErr) {
@@ -227,6 +229,7 @@ func (s *InfoService) Kick(id uint32) error {
}
if cl2, ok2 := cool.GetClientOnly(useid2); !ok2 || cl2 == nil {
_ = share.ShareManager.DeleteUserOnline(id)
cool.DeleteClientOnly(useid2)
return nil
}
return fmt.Errorf("kick timeout, user still online: uid=%d server=%d", id, useid2)