—————————————————————————————————————————————————————————————————————
처리 해야하는 부분
MainPage 접속 시 socket.connect()를 계속 실행
이유: “입장하기, 빠른입장, 시작하기, 방생성” 등 로그인 유무를 확인하는 동일 유효성검사가 존재하며, socket.emit을 통해 서버에 전달해야하는 요소인 “usreId, nickname” 동일하게 적용되어 하나의 지역 state값으로 유지하여 사용하기 위함이며 또한, 관련있는 여러 클릭이벤트를 하나의 커스텀 훅으로 관리하면 가독성이 높아지기 때문이다.
이유: 게임 특성상 방 리스트의 변화가 자주 일어나므로 리스트와 관련없는 컴포넌트가 리 렌더링될 필요가 없으므로 분리
또한, 게임 특성상 짧은 주기로 리스트를 다시 보여줘야 하므로 새로고침 시마다 계속 서버에 요청해야한다.
—————————————————————————————————————————————————————————————————————-
1. Server에서 전달해주는 값
—————————————————————————————————————————————————————————————————————-
1. Supabase getUser(), getSession()
변경 해야하는 부분)
버튼 클릭 후 로그인 유무를 확인하는 함수에서 retrun값이 boolean이 아닌 userId, usernickname값 전달 받기
이유: 방 입장 시 userId, usernickname이 필요한 상황에서 세션에 저장된 로그인 정보를 사용하기 위해서
현재 로그인 정보를 메인페이지 접속 시마다 getUser()를 통해 데이터를 받고 있으며, 입장하기 버튼 클릭시 getUser()를 통해 로그인 유무를 확인하고 있다.
두 번의 getUser()를 사용할 필요없이 결국 입장할 때 getUser()를 통해 로그인 유무를 확인하면서 로그인된 정보를 받아 한 번에 처리할 수 있기 때문이다.
방 입장 후 livekit에 userId, usernickname 값은 getUser()를 사용하여 로그인 정보 가져오기
비동기 통신이라 해서 무조건 서버와의 통신에서만 사용하는 게 아닌 지금처럼 특정 값을 얻고 그 다음 로직에서 값이 필요한 로직일 경우에도 사용한다.
위의 getUser(), getSession() 관련 문서