diff --git a/app/static/js/ws.js b/app/static/js/ws.js index c809e9a..f4a395f 100644 --- a/app/static/js/ws.js +++ b/app/static/js/ws.js @@ -1,35 +1,34 @@ -// using socketio for websocket communication export function createWSClient(handlers = {}) { const socket = io(); socket.on("connect", () => { - console.log("Connected to server"); - handlers.onConnect?.(); + handlers.onConnect?.(socket); }); socket.on("disconnect", () => { - console.log("Disconnected from server"); handlers.onDisconnect?.(); }); const serverEvents = { + server_ready: handlers.onServerReady, code_game_created: handlers.onGameCreated, code_game_joined: handlers.onGameJoined, + code_game_join_failed: handlers.onGameJoinFailed, game_started: handlers.onGameStarted, p2_connected: handlers.onP2Connected, user_move: handlers.onUserMove, move_accept: handlers.onMoveAccept, move_reject: handlers.onMoveReject, game_over: handlers.onGameOver, - //todo: draw, resign, rematch + draw_offer: handlers.onDrawOffered, + clock_tick: handlers.onClockTick, }; - let i = 0; for (const [event, handler] of Object.entries(serverEvents)) { if (handler) { socket.on(event, handler); - i++; } } - console.log("registered " + i + " server event handlers"); + + return socket; } diff --git a/app/static/js/ws_handlers.js b/app/static/js/ws_handlers.js index 4db7c48..5c6a63e 100644 --- a/app/static/js/ws_handlers.js +++ b/app/static/js/ws_handlers.js @@ -1,11 +1,43 @@ export function handleGameStarted(data) { - throw new Error("todo"); + window.playApp?.onGameStarted(data); } export function handleCodeGameCreated(data) { - throw new Error("todo"); + window.playApp?.onCodeCreated(data); } export function handleP2Connected(data) { - throw new Error("todo"); + window.playApp?.onP2Connected(data); +} + +export function handleCodeGameJoined(data) { + window.playApp?.onGameJoined(data); +} + +export function handleCodeGameJoinFailed(data) { + window.playApp?.onGameJoinFailed(data); +} + +export function handleMoveAccepted(data) { + window.playApp?.onMoveApplied(data); +} + +export function handleOpponentMove(data) { + window.playApp?.onMoveApplied(data); +} + +export function handleMoveRejected(data) { + window.playApp?.onMoveRejected(data); +} + +export function handleGameOver(data) { + window.playApp?.onGameOver(data); +} + +export function handleDrawOffered(data) { + window.playApp?.onDrawOffered(data); +} + +export function handleClockTick(data) { + window.playApp?.onClockTick(data); }