Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BE] Deploy: be api server #206

Merged
merged 43 commits into from
Dec 6, 2023
Merged

[BE] Deploy: be api server #206

merged 43 commits into from
Dec 6, 2023

Conversation

kushinada2077
Copy link
Collaborator

No description provided.

h9661 and others added 4 commits December 5, 2023 16:36
…issions

[BE] Fix: id로 정렬하게 변경
[BE] Fix: 로비 정보에 roomList 전송하지 않는 문제 수정
@kushinada2077 kushinada2077 added Be 백엔드 관련 이슈를 나타냅니다. Deploy dev 배포 labels Dec 5, 2023
kushinada2077 and others added 24 commits December 5, 2023 16:58
client.user.name을 제대로 받아오도록 수정했다.
[BE] Fix: 구조분해할당 오류 수정
로비에 있는 유저들에게 접속한 방의 인원수를 전송하도록 했다.
방에서 퇴장했을 때 로비에 있는 유저들에게 해당 방의 유저카운트 정보를 전송했다.
…issions

[BE] Feat: userId로 전체 submission count 리턴하도록 변경
방 제목을 지정하지 않고 생성했을 때 기본 방 제목을 추가했다.
[BE] Feat: 방 입퇴장시 유저카운트 갱신, 기본 방 제목 추가
roomId를 소켓의 데이터에서 꺼내 사용하도록 했다.
준비 요청마다 방의 모든 유저가 준비됐는지 확인하고 충족하면 게임 시작 이벤트를 발생시킨다.
랜덤으로 문제를 가져와서 방의 유저들에게 전송하고 로비에 게임이 시작됐다는 데이터를 전송한다.
사용자 준비 상태를 변경하는 메서드의 이름을 swtichReady로 변경했다.
[BE] Refactor: 게임 준비, 시작 기능
userName에 소켓 객체 자체를 매핑하지 않고 소켓 객체의 id를 매핑하도록 했다.
서비스단에서 소켓 객체를 보관하고 찾는 게 적절하지 않다고 생각했다.
게이트웨이에서 웹소켓 서버의 자체적인 매핑 기능을 이용해 소켓 객체를 찾아오도록 했다.
게임을 시작할 때 60초마다 아이템을 방의 유저에게 생성해서 나눠주는 콜백을 실행하는 타이머를 설정한다.
아이템을 사용하면 서버에 등록된 아이템 정보와 대조해서 유효한지 확인하고 사용 가능 여부를 전달한다.
setInterval에서 아이템을 생성해서 분배하는 콜백을 별도의 메서드로 분리했다.
아이템 보유 개수가 2개 이상이면 아이템을 분배받을 수 없는데, 기존에는 itemList를 배열로 변환해서 length로 계산했기 때문에 중복 아이템 2개도 1개로 카운트하는 문제가 있었다.
reduce를 통해 value를 전부 더해서 계산하도록 변환했다.
[BE] Feature: 아이템 생성, 사용 검증
게임 진행 중 유저들이 전부 퇴장하여 방이 삭제될 때 아이템 생성 타이머도 삭제해주도록 했다.
dm 게이트웨이의 에러처리를 서비스단으로 분리하고 socketId를 사용해 메시지를 전송하도록 했다.
[BE] Feat: 아이템 생성 타이머 자동삭제
게이트웨이의 private 메서드들을 하단으로 이동시켰다.
h9661 and others added 15 commits December 6, 2023 14:02
…ission

[BE} Fix: Get으로는 body를 사용할 수 없기때문에, query parameter로 변경
…ission

[BE] Fix: 테스트 실패 해결
[BE] Refactor: dm 기능 에러처리 분리
라우팅 규칙에 따라 위에서 아래로 엔드포인트를 들른다. 그래서 getLastSubmission이 작동하지 않아서 제거해줬다.
…ission

[BE] Fix: 사용하지 않는 엔드포인트 제거
[BE] Feat: 유저 stats 가져오는 것 다른 api로 분리
예외 처리를 해주고 강제 퇴장만 책임지도록 변경했다.
[BE] Refactor: 강퇴 게이트웨이
초대한 유저가 존재하지 않는 상황을 예외처리했다.
방의 ID만 리턴해줘서 초대받은 방의 정보는 ID를 통해 다시 입장을 요청할 때 얻어오도록 했다.
room.state를 타입으로 만들었다.
waiting, playing으로 작성된 코드들을 ROOM_STATE.WAITING, PLAYING으로 변경했다.
성공 상태를 반환하는 함수들이 굳이 반환할 필요가 없다고 느꼈다. 함수의 실행이 완료되는 것 자체가 예외처리에 걸리지 않았다는 말이기 때문이다.
그것들을 제거해줬다.
[BE] Refactor: 초대 게이트웨이 예외처리 추가, 리턴값 변경, 방 상태 타입 추가
@kushinada2077 kushinada2077 merged commit be717c4 into main Dec 6, 2023
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Be 백엔드 관련 이슈를 나타냅니다. Deploy dev 배포
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants