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:
@@ -198,7 +198,7 @@ public class LoadGamePacket
|
||||
}
|
||||
|
||||
[ProtoMember(3)]
|
||||
public int MaplId
|
||||
public int MapId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
|
||||
@@ -2,73 +2,73 @@ namespace MMOserver.Packet;
|
||||
|
||||
public enum PacketCode : ushort
|
||||
{
|
||||
// 초기 클라이언트 시작시 jwt토큰 받아옴
|
||||
ACC_TOKEN = 1,
|
||||
|
||||
// 내 정보 로드 (서버 -> 클라)
|
||||
LOAD_GAME = 2,
|
||||
|
||||
// 모든 채널 로드 - jwt토큰 검증후 게임에 들어갈지 말지 (내 데이터도 전송)
|
||||
// (서버 -> 클라)
|
||||
LOAD_CHANNEL = 3,
|
||||
|
||||
// 나 채널 접속 (클라 -> 서버)
|
||||
INTO_CHANNEL = 4,
|
||||
|
||||
// 파티 채널 접속 (클라 -> 서버)
|
||||
INTO_CHANNEL_PARTY = 5,
|
||||
|
||||
// 새로운 유저 채널 접속 (서버 -> 클라) / 유저 채널 나감 (서버 -> 클라)
|
||||
UPDATE_CHANNEL_USER = 6,
|
||||
|
||||
// 채널 나가기 (클라 -> 서버)
|
||||
EXIT_CHANNEL = 7,
|
||||
|
||||
// 맵 이동
|
||||
CHANGE_MAP = 8,
|
||||
|
||||
// 단체로 맵 이동
|
||||
PARTY_CHANGE_MAP = 9,
|
||||
|
||||
// 파티장이 보스 레이드(인스턴스 던전) 입장 신청 (클라 -> 서버)
|
||||
INTO_BOSS_RAID = 10,
|
||||
|
||||
// 플레이어 위치, 방향 (서버 -> 클라 \ 클라 -> 서버)
|
||||
TRANSFORM_PLAYER = 11,
|
||||
|
||||
// 플레이어 행동 업데이트 (서버 -> 클라 \ 클라 -> 서버)
|
||||
ACTION_PLAYER = 12,
|
||||
|
||||
// 플레이어 스테이트 업데이트 (서버 -> 클라 \ 클라 -> 서버)
|
||||
STATE_PLAYER = 13,
|
||||
|
||||
// NPC 위치, 방향 (서버 -> 클라)
|
||||
TRANSFORM_NPC = 14,
|
||||
|
||||
// NPC 행동 업데이트 (서버 -> 클라)
|
||||
ACTION_NPC = 15,
|
||||
|
||||
// NPC 스테이트 업데이트 (서버 -> 클라)
|
||||
STATE_NPC = 16,
|
||||
|
||||
// 데미지 UI 전달 (서버 -> 클라)
|
||||
DAMAGE = 17,
|
||||
|
||||
// 파티 생성/삭제, 파티원 추가/제거 (서버 -> 클라)
|
||||
UPDATE_PARTY = 18,
|
||||
|
||||
// 파티 참가/탈퇴/생성/해산 요청 (클라 -> 서버)
|
||||
REQUEST_PARTY = 19,
|
||||
|
||||
// 채팅 (클라 -> 서버 & 서버 -> 클라) - GLOBAL / PARTY / WHISPER
|
||||
CHAT = 20,
|
||||
|
||||
// ECHO
|
||||
ECHO = 1000,
|
||||
|
||||
// DUMMY 클라는 이걸로 jwt토큰 안받음
|
||||
DUMMY_ACC_TOKEN = 1001,
|
||||
|
||||
// 초기 클라이언트 시작시 jwt토큰 받아옴
|
||||
ACC_TOKEN = 1,
|
||||
|
||||
// 내 정보 로드 (서버 -> 클라)
|
||||
LOAD_GAME,
|
||||
|
||||
// 모든 채널 로드 - jwt토큰 검증후 게임에 들어갈지 말지 (내 데이터도 전송)
|
||||
// (서버 -> 클라)
|
||||
LOAD_CHANNEL,
|
||||
|
||||
// 나 채널 접속 (클라 -> 서버)
|
||||
INTO_CHANNEL,
|
||||
|
||||
// 파티 채널 접속 (클라 -> 서버)
|
||||
INTO_CHANNEL_PARTY,
|
||||
|
||||
// 새로운 유저 채널 접속 (서버 -> 클라) / 유저 채널 나감 (서버 -> 클라)
|
||||
UPDATE_CHANNEL_USER,
|
||||
|
||||
// 채널 나가기 (클라 -> 서버)
|
||||
EXIT_CHANNEL,
|
||||
|
||||
// 맵 이동
|
||||
CHANGE_MAP,
|
||||
|
||||
// 단체로 맵 이동
|
||||
PARTY_CHANGE_MAP,
|
||||
|
||||
// 파티장이 보스 레이드(인스턴스 던전) 입장 신청 (클라 -> 서버)
|
||||
INTO_BOSS_RAID,
|
||||
|
||||
// 플레이어 위치, 방향 (서버 -> 클라 \ 클라 -> 서버)
|
||||
TRANSFORM_PLAYER,
|
||||
|
||||
// 플레이어 행동 업데이트 (서버 -> 클라 \ 클라 -> 서버)
|
||||
ACTION_PLAYER,
|
||||
|
||||
// 플레이어 스테이트 업데이트 (서버 -> 클라 \ 클라 -> 서버)
|
||||
STATE_PLAYER,
|
||||
|
||||
// NPC 위치, 방향 (서버 -> 클라)
|
||||
TRANSFORM_NPC,
|
||||
|
||||
// NPC 행동 업데이트 (서버 -> 클라)
|
||||
ACTION_NPC,
|
||||
|
||||
// NPC 스테이트 업데이트 (서버 -> 클라)
|
||||
STATE_NPC,
|
||||
|
||||
// 데미지 UI 전달 (서버 -> 클라)
|
||||
DAMAGE,
|
||||
|
||||
// 파티 생성/삭제, 파티원 추가/제거 (서버 -> 클라)
|
||||
UPDATE_PARTY,
|
||||
|
||||
// 파티 참가/탈퇴/생성/해산 요청 (클라 -> 서버)
|
||||
REQUEST_PARTY,
|
||||
|
||||
// 채팅 (클라 -> 서버 & 서버 -> 클라) - GLOBAL / PARTY / WHISPER
|
||||
CHAT,
|
||||
|
||||
// 요청 실패 응답 (서버 -> 클라)
|
||||
ERROR = 9999
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user