매칭서버로 바로 가는게 아니고 API 게임 서버 통해서 매칭
API 게임서버에서 유효성 검사하고 넘기기
매칭 요청
클라 요청 → API 게임 서버가 받아서 유효성 검사 후 매칭서버에게 전달 → 매칭 풀에 넣고 요청 처리 완료 응답 → API 게임서버가 받아서 클라한테 응답
매칭 결과 요청
매칭 결과 알려달라고 요청 → API 게임 서버가 받아서 유효성 검사 후 매칭서버에게 전달 →
매칭서버가 매칭이 됐으면 됐다, 안됐으면 안됐다고 전달(붙을 소켓서버의 주소, 몇번 방인지 전달) → API 게임 서버가 받아서 전달
대전 서버와 매칭 서버가 Pub/Sub 관계
매칭 서버가 Pub 매칭 방 할당을 해달라고 메세지 보내면 레디스에서 Sub한 대전 서버 중에서 제일 빨리 받은 애가 (조건 : 빈 방이 있어야함, 빈 방이 있는 애들만 SUb 해야함) 대전 서버의 IP 주소랑 방 번호를 매칭서버한테 줌(매칭 서버가 Sub이 되고 대전서버가 Pub)
근데 선착순이 안됌? → 먼저 받은 Sub가 응답 주는게 안되면 List써서 해라?이건 무조건 하나밖에 저장안되니까 레디스의 List 자료구조 써서 메세지 보내기?
대전 방 요청 : Pub(매칭) / Sub(대전)
대전 방 할당 완료 : Pub(대전) / Sub(매칭)
메시지 메모리팩으로 하는게 좋다(Json도 가능?) 저장할거 아니라서 그냥 메모리팩 해도 된다
메모리팩으로 할 필요는 없고 클래스 넣으면 알아서 인코딩해서 Json으로 보내니까 그냥 이거 쓰기
Pub/Sub 키 ? 동일?
매칭 서버가 Pub할때 이걸 Sub하는 애들(대전서버)는 따로 Sub용 스레드 파야함 / 안파면 Sub하느라 메인이 멈춤