- PCNet을 활용하여 게임 대기열 시스템을 성공적으로 구축, 최대 클라이언트 수 초과 시 플레이어를 강제 퇴장시키는 대신 순차적으로 입장시킵니다. 🎮
RequireAuthentication = false 설정을 통해 미인증 클라이언트도 인증 요청 및 Keep-Alive 신호를 주고받을 수 있도록 하여 대기열의 기반을 마련했습니다. 🔑
- 서버는
MaxPlayers 여유가 생길 때마다 대기열에서 클라이언트를 하나씩 꺼내 인증(Approve)하여 게임에 진입시킵니다. ➡️
- PCNet의 클라이언트 타임아웃(60초)으로 인한 대기열 이탈을 방지하기 위해, 주기적인 Keep-Alive(핑퐁) 신호 교환 메커니즘을 구현했습니다. ❤️🩹
- Keep-Alive 신호는 클라이언트의 연결을 유지하고, 서버는 대기열 순서 등의 정보를 전달하여 안정적인 대기 환경을 제공합니다. 📡
- 이 프로젝트를 통해 PCNet의
CheckClientTimeout이 전체 연결을 한 번에 확인하지 않고 구간별로 처리하는 내부 작동 방식을 깊이 이해하게 되었습니다. 🧠
- 대기열 시스템 구현이 예상보다 쉬웠으며, 직접 개발하며 PCNet 기능과 네트워크 통신 원리를 실질적으로 학습하는 좋은 기회가 되었습니다. ✨
- 테스트 결과, 여러 클라이언트가 안정적으로 대기하고 순차적으로 승인되며, Keep-Alive 덕분에 타임아웃 없이 연결이 유지됨을 확인했습니다. ✅
- 무작위 강퇴 시에도 대기열 클라이언트가 즉시 빈자리를 채워 서버의 활성 플레이어 수를 효율적으로 유지하는 것을 입증했습니다. 🔄
데브허브 | DEVHUB | 피시넷으로 게임 대기열 만들기