fix: MMO 서버 버그 수정 및 안정성 개선 (20건)
- VerifyTokenAsync 인증 우회 차단 (빈 문자열→null 반환) - HandleAuth/OnIntoBossRaid async void→async Task 전환 - await 후 스레드 안전성 확보 (sessionLock 도입) - 보스레이드 파티원 세션/토큰 개별 전달 (tokens Dictionary 타입 수정) - 409 Conflict 처리 추가, bossId 하드코딩 제거 - 채널 이동 시 레이드 맵 해제, 플레이어 상태 보존 - 파티원 닉네임 손실 수정, HandlePartyLeaveOnExit 알림 타입 수정 - PacketCode enum 명시적 값 할당, MaplId→MapId/BossRaidAccesss→Access 오타 수정 - Channel.UserCount 음수 방지, HandleAuth 재연결 로직 수정 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -35,7 +35,7 @@ public class RestApi : Singleton<RestApi>
|
||||
if (response.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
Log.Warning("[RestApi] 토큰 인증 실패 (401)");
|
||||
return "";
|
||||
return null;
|
||||
}
|
||||
|
||||
response.EnsureSuccessStatusCode();
|
||||
@@ -56,7 +56,7 @@ public class RestApi : Singleton<RestApi>
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
return null;
|
||||
}
|
||||
|
||||
private sealed class AuthVerifyResponse
|
||||
@@ -71,7 +71,7 @@ public class RestApi : Singleton<RestApi>
|
||||
|
||||
// 레이드 채널 접속 여부 체크
|
||||
// 성공 시 BossRaidResult 반환, 실패/거절 시 null 반환
|
||||
public async Task<BossRaidResult?> BossRaidAccesssAsync(List<string> userNames, int bossId)
|
||||
public async Task<BossRaidResult?> BossRaidAccessAsync(List<string> userNames, int bossId)
|
||||
{
|
||||
string url = AppConfig.RestApi.BaseUrl + "/api/internal/bossraid/entry";
|
||||
|
||||
@@ -88,10 +88,12 @@ public class RestApi : Singleton<RestApi>
|
||||
return null;
|
||||
}
|
||||
|
||||
// 400: 입장 조건 미충족 (레벨 부족, 이미 진행중 등)
|
||||
if (response.StatusCode == HttpStatusCode.BadRequest)
|
||||
// 400: 입장 조건 미충족 / 409: 이미 레이드 중 등
|
||||
if (response.StatusCode == HttpStatusCode.BadRequest ||
|
||||
response.StatusCode == HttpStatusCode.Conflict)
|
||||
{
|
||||
Log.Warning("[RestApi] 보스 레이드 입장 거절 (400) BossId={BossId}", bossId);
|
||||
Log.Warning("[RestApi] 보스 레이드 입장 거절 ({Status}) BossId={BossId}",
|
||||
(int)response.StatusCode, bossId);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -166,7 +168,7 @@ public class RestApi : Singleton<RestApi>
|
||||
}
|
||||
|
||||
[JsonPropertyName("tokens")]
|
||||
public string? Tokens
|
||||
public Dictionary<string, string>? Tokens
|
||||
{
|
||||
get;
|
||||
set;
|
||||
|
||||
Reference in New Issue
Block a user