4주차
대전 게임 서버 개발
- Heart-Beat 저장
- Keep Alive? → 구현은 OS마다 달라서 우리가 원하는 형태로 안되기 때문에 아직까진 잘 안 씀
- 연결이 끊어졌는지 안끊어졌는지 확인하는 용도
- 일종의 pingpong
- 어느 시간 이상 안오면 상대방에 문제가 생긴거
- 안오면 이상있다고 생각하고 연결 끊기 (바로는 아니고 주기 적으로?)
- 클라도 마찬가지로 서버한테서 응답 안오면? 서버가 죽은 걸 수도 있음
- 클라 - 서버 뿐 아니라 서버 - 서버도 해야함
- 최소 1초 이상
- 타이머 같은걸 하나 만들어서 주기적으로 타이머가 내부 패킷으로 로직 스레드한테 유저 상태 체크하라고 시키기?
- 한번에 모든 유저 하지 말기
- 조사 주기가 초 단위니까 250ms로 해서 전체 유저를 4등분해서 250ms마다 유저 한 묶음씩 체크하기
- 로그인에 DB 연동
- 게임 결과 DB 개발
- DB는 새로운 스레드 생성
- 지금 있는 핸들러에서 DB 처리를 하면 원하지 않게 wait가 생김
- I/O 관련은 대체적으로 별도의 스레드로 만듬
- 스레드 하나 아니고 N개로 해야함
- 요청 온거 처리, 응답 처리?
- DB를 다루는 스레드를 몇 개로 할건지는 옵션값에서 받아와야함
- 로그인이 바뀜
- 로그인 가능한지 체크 → 되면 레디스쪽 스레드로 데이터 보내고 → 처리 다하면 로직 처리 스레드로 데이터 전송 / 핸들러가 하나 더 생김?
- 내부 패킷? 이용해서 스레드 간 데이터 공유?
수요일까지…?
프로메테우스 / 그라파나 : 모니터링
프로메테우스가 데이터 수집하고 그라파나가 볼 수 있게
EFBInaryRequestInfo : EF 왜 붙였는지 수정하기 → 오목
일관성 있게 자료형 var 쓸거면 다 var 쓰기
ReceiveFilter에서 GetBodyLEnght 먼저 하고 Resolve 하기 때문에 헤더 뒤집는거 한번만
static 왠만하면 안쓰기
MainServer 코드 자체에서 연결되거나 끊길때 세션카운트 찍기
제네릭 호스트 뭔지 공부
슈퍼소켓 개념은 알기
로그 하는데 콘솔 찍지말기
Settings는 값을 준다? 동작까지는 안포함하는듯한 의미