Simple rock-paper-scissors game with WebRTC
Socket은 서버를 통한 (양방향)통신이지만, WebRTC는 P2P 통신입니다.
src
│ server.js # App entry point
└───controllers # Express route 컨트롤러
└───config # 환경변수
└───loaders # 모듈 로더
└───public # html, css, js
Player A, Partner B
- [FE] A가 최초 접속 시,
socket emit 'join-room'
getParameterByName
통해 key get
- [BE] 접속에 대한 처리, 만약 key가 없다면
uuid pakage
를 통해 생성- A(Player)에게
socket emit joined-room
- B(Partner)에게
socket emit 'partner-joined-room'
- A(Player)에게
- [FE] Join room에 대한 처리
- A(Player)가
socket on joined-room
를 통한 redirect 처리 등 - B(Partner)가
socket on partner-joined-room
통해 offer 작성 후, A(Player)에게 전송
- A(Player)가
- 이후, FE
emit call-user
=> BEemit call-made
=> FEemit make-answer
=> BEemit answer-made
흐름 dataChannel.send
&&onmessage
를 통해 가위바위보 진행