[실전프로젝트] Zzz...꿈깨 | Trouble Shooting!(WebRTC, Socket.io)
2022. 4. 13. 03:06ㆍ프로젝트
반응형
<WebRTC 서버 구축 문제>
✅ P2P(signalling server) vs MCU/SFU
4명까지 보이스 채팅이 가능한 환경을 만들기 위해 어떤 서버를 사용해야 하는가?
❓❕ signalling server를 구축하자!
--->
📑 오디오만 사용하고, 4명까지만 연결하기 때문에 signalling server로도 client 부담이 크지 않을 거라고 생각했고, MCU, SFU는 프로젝트 기한 내에 구현하기 어려울 것으로 판단했다.
Springboot vs NodeJS
✅다대다 WebRTC를 위한 signalling server를 어떻게 구현할 것인가?
❓❕ NodeJS의 Socket.io를 사용하여 signalling server를 구현하자!
--->
📑 Springboot를 사용하면 하나의 서버만 관리하면 되고, 팀원들 모두가 익숙한 프레임워크를 사용할 수 있다.
그러나 참고자료가 많지 않다.
📑 NodeJS를 사용하면 Socket.io 라이브러리를 사용해서 비교적 쉽게 구현이 가능하나,
서버를 2개 관리해야 되기 때문에 유지관리에 비용이 더 소모되고, 익숙하지 않은 언어와 프레임워크를 사용해야 한다.
📑 Springboot로 signalling server를 구축하면 시간이 더 오래 걸릴 것으로 예상했고,
제한된 시간 안에 서비스의 완성도를 높이기 위해서는 NodeJS의 Socket.io를 사용하는 것이 더 적합하다고 판단!
<게임 플레이 중 동시성 제어 문제>
✅ 문제상황
📑 게임 중 맞춘 문제 수(스코어), 찬스가 변경될 경우 해당 방 Client 모두에게 해당 정보를 업데이트해주어야 함
Socket.io의 이벤트를 활용해서 스코어나 찬스 변경 이벤트 발생 시 해당 방에 데이터 변경 사실 알려주자!
❕📑 HTTP 통신에서는 Client 요청 없이 Server가 Response 할 수 없으므로 socket 통신을 이용하면 해결할 수 있음!
📑 퀴즈를 동시에 보고 있을 때도 한 명이 문제를 풀면 이벤트를 활용해 이미 푼 문제로 변경
반응형
'프로젝트' 카테고리의 다른 글
[실전프로젝트] Zzz...꿈깨의 오류제보 사례 & 개선 (0) | 2022.04.13 |
---|---|
Q) 과연 내 서비스는 언제 죽을까? 한계를 알아보자 (0) | 2022.03.31 |
클론코딩 프로젝트 : 마켓컬리 : Spring (0) | 2022.02.28 |
미니프로젝트02 : Pic! 다양한 이미지를 구경하고 소통해보세요! (0) | 2022.02.17 |
항해99: 1주차 미니프로젝트 회고 (0) | 2022.01.13 |