📝 TIL

[TIL] 9주차 실전 프로젝트ㅣ WebRTC로 게임 준비 로직 구현

오늘 ONEUL 2023. 1. 13. 00:03

 

[눈치, 캐치, 코치!] 게임 준비 로직 구현

WebRTC를 이용해 다대다 음성연결까지 성공하였고,
이제 본격적으로 게임 준비부터 시작까지 로직을 구현하려 한다.

팀 내에서 WebSocket Handler를 하나 더 추가하자는 의견이 나왔으나
비교적 사례가 많지 않고, 불필요하다는 의견도 있어서 하나의 Handler에서 게임 로직을 진행하기로 했다.
(텍스트 채팅은 STOMP를 활용하여 따로 구현 예정)

클라이언트로부터 받아오는 message type으로 구분하여 분기 처리를 해줄 것이다.
흐름으로 보는 로직은 이러하다.

  • 접속한 유저의 sessionId와 해당 roomId를 GameRoomService에 넘겨서 유저의 ready 상태 변경
    (true였다면 false로, false였다면 true로)
  • 해당 유저의 ready 상태를 방 인원 전체에게 알려주기 위해 본인을 제외한 현재 방의 전체 유저 session 객체를 가져와서 메시지 전달
  • 해당 방의 모든 유저가 게임 준비를 했는지 판별하여 게임 시작 가능 여부 방장한테 메시지 전달
  • 이제 진짜 게임 시작!

 

그래도 한 번 해봤다고 나름(?) 수월하게 짜는 중이다.
단지 클라이언트가 요청을 보내주지 않으면 테스트를 해볼 수 없다는 게.. 😂
어서 구현하고 게임 돌아가는 거 보고 싶다!

 

 

 

AWS EC2 서버에 redis 설치하기

내 EC2 서버에서도 원활한 테스트를 하기 위해 redis-server를 설치하려 한다.

먼저 apt-get을 업그레이드해 주자.

sudo apt-get update
sudo apt-get upgrade

 

apt-get을 통해 redis-server를 설치한다.

sudo apt-get install redis-server

 

외부에서도 redis에 접속할 수 있도록 redis.conf 파일을 수정한다.

sudo vi /etc/redis/redis.conf

i를 입력해서 vi 입력모드로 진입하고,
127.0.0.1 ::1 → 0.0.0.0으로 변경한다.

수정이 끝나면 esc를 누르고 :wq 명령어로 저장한다.

 

이제 redis를 실행해 보자.

sudo systemctl restart redis-server

reids는 인메모리 데이터베이스라 redis-server가 실행 중인 상태여야 사용할 수 있다.
EC2 인스턴스를 닫아도 redis-server가 계속 실행 중인 상태를 유지하려면 백그라운드 실행을 해야 한다.
systemctl 명령어는 백그라운드 프로세스를 제어하는 명령어이다.

여기까지 하면 redis 설치 성공!
관련 명령어는 다음 자료를 참고하자.

 

📚 참고자료 (혁수님 감사합니다🙏)

 

[Redis] Sets 명령어 설명 & 예제

Sets 관련 명령어 예제 - SADD 설명 : 키에 저장된 집합에 지정된 멤버를 추가합니다. 이 집합의 구성원 인 경우 지정된 멤버는 무시됩니다. key가 없으면 지정된 멤버를 추가하기 전에 새 세트가 만

realmojo.tistory.com

 

[Redis] AWS EC2에 redis-server setup 하기

이번 글에서는 AWS EC2에 외부에서 접속 가능한 redis-server를 setup 하는 과정을 정리해보겠습니다. EC2 인스턴스 생성 우선, redis-server를 설치할 EC2 인스턴스를 만듭니다. 저는 jony라는 이름의 ubuntu 18.

wookgu.tistory.com

 

[Redis] redis 외부 접속 허용

이번 포스팅은 레디스를 외부에서 접속할 수 있게 하는 설정에 대한 포스팅입니다. 현재 사용하는 서버에서 다른 서버에 존재하는 레디스에 접속해야 하는 상황의 경우 아래와 같이 설정을 통

soyoung-new-challenge.tistory.com

 

 

 

오늘의 나는

정말 간만에 하루를 정리하는 시간을 가졌다.
조금씩이라도 매일 기록하고 싶었는데 마음 같지 않네..

아무튼 게임 메인 로직 구현에도 들어갔고, 디자인도 귀엽게 잘 나왔고,
이제 나만 잘하면 된다!
빠이태애애애앵~~~~!😉

 

함정카드 있음 주의