diff --git a/frontend/src/app/(private)/game/play/page.tsx b/frontend/src/app/(private)/game/play/page.tsx index b7fe320f..859ed97b 100644 --- a/frontend/src/app/(private)/game/play/page.tsx +++ b/frontend/src/app/(private)/game/play/page.tsx @@ -7,8 +7,20 @@ const Game = dynamic(() => import("../../../../components/Game"), { ssr: false, }); +/** + * Backend websocket events + * 1. joinGame + * 2. startGame + * 3. updatedGame + * 4. movePlayer + * 5. gameFinished + * 6. gameAbandoned + */ + export default function PlayPage() { const canvasRef = useRef() as React.RefObject; + const [waitingPlayer2, setWaitingPlayer2] = useState(false); + const [gameData, setGameData] = useState({ players: [ { @@ -53,12 +65,22 @@ export default function PlayPage() { console.log("Disconnected from the WebSocket server"); }); - socket.emit("createGame"); + socket.emit("joinGame"); + + socket.on("waitingPlayer2", () => { + console.log("waitingPlayer2"); + setWaitingPlayer2(true); + }) - socket.emit("startGame"); + socket.on("gameCreated", () => { + console.log("gameCreated"); + setWaitingPlayer2(false); + socket.emit("startGame"); + }); // listen event from server called updatedGame socket.on("updatedGame", (data: any) => { + console.log("updatedGame", data); setGameData((prevGameData) => ({ ...prevGameData, ball: data.ball, @@ -110,6 +132,29 @@ export default function PlayPage() { }; }, [canvasRef]); + if (waitingPlayer2) { + return ( + <> +
+
+
Waiting for player 2...
+
+ + ) + } + return ( <>