게임 진행에 필요한 소켓 연결과 상태를 관리하는 Hook입니다.

  • store 중심적 구조
  • 자동 연결/재연결 처리
  • 플레이어 식별자 영속성 관리
  • 게임의 전반적인 상태 관리 (room, players, settings 등)
  • 여러 게임 상태 이벤트 포괄적인 핸들링
// GameLayout.tsx에서의 사용 예시
const GameLayout = () => {
// 게임 소켓 연결
useGameSocket();
// 소켓 연결 확인 상태
const isConnected = useSocketStore((state) => state.connected.game);

// 연결 상태에 따른 로딩 표시
if (!isConnected) {
return (
<div className="flex h-screen w-full items-center justify-center">
<DotLottieReact src={loading} loop autoplay className="h-96 w-96" />
</div>
);
}


return (
<div>
<header />
<Outlet />
</div>
);
};

소켓 연결 실패 시 에러

  • Returns void

    게임 소켓 상태와 액션 메소드들

    • socket - 현재 게임 소켓 인스턴스
    • isConnected - 연결 상태
    • actions - 게임 상태 관리 메소드들