- 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>
DB 사용법
구조
MMOServer (실행 프로젝트 Test파일들은 임시용)
├── RDB/
├──── Handlers/
│ └──── TestHandler.cs
├──── Models/
│ └──── TestM.cs
├──── Repositories/
│ └──── TestRepository.cs
└──── Services/
└──── TestService.cs
ServerLib (DLL)
├── RDB/
├──── Database/
│ └── DbConnectionFactory.cs
├──── Handlers/
│ ├── HandlerHelper.cs
│ └── Response.cs
└──── Repositories/
└── ARepository.cs
데이터 흐름
호출부 (Packet 등)
↓ 파라미터 전달
Handler → Service 호출 + 응답 포맷팅 (string, HelperHander 사용)
↓
Service → 비즈니스 로직, 유효성 검사, 예외 throw
↓
Repository → DB 접근 (Class? / bool / long 반환)
↓
MySQL
반환 타입 정리
| 레이어 | 반환 타입 |
|---|---|
| Repository | class? / IEnumerable<class> / long / bool |
| Service | 동일 (그대로 올림) |
| Handler | string (JSON 포장) |
새 테이블 추가 시
MMOServer/RDB/Models/에 Model 추가MMOServer/RDB/Repositories/에 Repository 추가 (ARepository 상속)MMOServer/RDB/Services/에 Service 추가MMOServer/RDB/Handlers/에 Handler 추가
ServerLib (DLL) 은 건드릴 필요 없음.
Connection Pool 설정(MMOServer/config.json)
{
"Database": {
"Host": "localhost",
"Port": "0000",
"Name": "XXXX",
"User": "root",
"Password": "11212121",
"Pooling": {
"MinimumPoolSize": "5",
"MaximumPoolSize": "100",
"ConnectionTimeout": "30",
"ConnectionIdleTimeout": "180"
}
}
}
Description
Languages
C#
99.6%
Dockerfile
0.4%