채팅방

필요한것

조회: 247 댓글: 1개 2022.12.20 1:28 화요일
  1. 기능구현
    1. 방장
      1. 방을 생성한 유저가 방장
        #방이 생성되고 최초로 connect 되는 유저를 방장으로 지정
        #방 테이블의 방장 컬럼에 유저 id 추가
      2. 방장이 나가면 다음 유저가 방장
        #유저가 나갔다
        #방장이었다면 - 다음 유저를 방장으로 지정, 이후 클라이언트들에 방장 id를 소켓 전송
        #일반이었다면 - 아무 일 없음
      3. 방장의 역할
        #방장 소켓과 일치하는 클라이언트만 기능 활성화
        1. 강제 퇴장
          #퇴장 유저에게 로비 이동 소켓 전송
        2. 방 정보 변경(인원수, 제목, 승수)
          #방 정보 변경 api 사용
    2. 초대
      #로비 url에 get 파라미터가 있으면 초대 화면 렌더링
      #get 파라미터는 방의 id값
    3. 게임준비
      1. 플레이어들이 로비에 들어옴
        #방(그룹)에 소켓 붙기
        #방(그룹)별 게임 데이터 생성
      2. 플레이어들은 준비 버튼을 눌러 준비됐음을 알림
        #방:플레이어 매핑 테이블에 준비상태 컬럼 추가
      3. 모든 플레이어가 준비되면 방장의 게임시작 버튼이 활성화
        #해당 방의 모든 매핑 열들의 컬럼이 준비상태가 되면 시작 버튼 활성화 소켓 전송
    4. 게임시작
      1. 게임이 시작되면 방에 입장 불가
        #방 테이블에 방 상태 컬럼을 추가
    5. 게임진행
      1. 게임데이터

        {     'round' : 1,     'count' : 4,     'users' : { 	    'user1' : 'r', 	    'user2' : 'p', 	    'user3' : 's',     } }
      2. 플레이어가 rps 버튼을 클릭함
        #다른 플레이어들이 선택을 마칠때까지 대기중... 표시
        #전송할 것 : user_uuid, rps
      3. 모든 플레이어가 클릭 완료시 서버에서 알고리즘을 거쳐 클라이언트들에 결과 전송
        #count와 users의 길이가 동일해지면 결과 출력 및 전송
        #전송할 것 : round, user_uuid 및 결과
      4. 2,3번의 반복
    6. 게임종료
      #승자가 한 명만 남았다면 클라이언트들에 우승자 전송 후 게임데이터 초기화
    7. 예외상황
      1. 게임 도중 플레이어가 방을 나갈 경우
      2. @
이름:빈껍데기메이커
내용:개추를 와바박
captcha