<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Pomodoro Timer</title> <style> button { padding: 10px 20px; margin: 5px; font-size: 16px; } #timer { font-size: 24px; margin-top: 20px; } </style> </head> <body> <h1>Pomodoro Timer</h1> <div id="timer">Connecting to server...</div> <!-- Buttons to start and stop the timer --> <button id="startButton">Start</button> <button id="stopButton">Stop</button> <script> var ws = new WebSocket("ws://localhost:8080/ws"); ws.onopen = function () { document.getElementById("timer").innerText = "Connected to server."; }; // Handle incoming messages and update the timer display ws.onmessage = function (event) { var data = JSON.parse(event.data); var mode = data.mode; var session = data.session; var maxSession = data.max_session; var timeLeft = data.time_left; document.getElementById("timer").innerText = mode + " Session " + session + "/" + maxSession + ": " + formatTime(timeLeft); }; ws.onclose = function () { document.getElementById("timer").innerText = "Connection closed."; }; // Format time in MM:SS function formatTime(seconds) { var minutes = Math.floor(seconds / 60); var remainingSeconds = seconds % 60; return minutes.toString().padStart(2, '0') + ":" + remainingSeconds.toString().padStart(2, '0'); } // Send start command to the server document.getElementById("startButton").addEventListener("click", function () { ws.send(JSON.stringify({command: "start"})); }); // Send stop command to the server document.getElementById("stopButton").addEventListener("click", function () { ws.send(JSON.stringify({command: "stop"})); }); </script> </body> </html>