From e18cb3854a9fccbaaa213808442f290bb5410f41 Mon Sep 17 00:00:00 2001 From: Quentin ANIERE Date: Wed, 13 Apr 2022 21:52:53 +0200 Subject: [PATCH] Added messages history --- index.js | 38 ++++++++++++++++++++++++++++---------- src/script.js | 6 ++++++ 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/index.js b/index.js index ac95af6..297a0a1 100644 --- a/index.js +++ b/index.js @@ -30,15 +30,27 @@ function getCurrentTime() { } var d = new Date(); + + var day = addZero(d.getUTCDate()); + var month = addZero(d.getUTCMonth() + 1); + var year = d.getFullYear(); + var h = addZero(d.getHours()); var m = addZero(d.getMinutes()); var s = addZero(d.getSeconds()); - return h + ":" + m + ":" + s; + return "[" + day + "-"+ month + "-" + year + " " + h + ":" + m + ":" + s + "]"; -}; +} + +function log(message) { + console.log(getCurrentTime() + " " + message); +} + + usersConnected = 0; lastUsername = 0; +messagesHistory = [] io.on("connection", (client) => { @@ -48,39 +60,45 @@ io.on("connection", (client) => { client.on("disconnect", () => { usersConnected--; io.sockets.emit("update-count", {value: usersConnected}); - console.log(getCurrentTime() + ": Client disconnection (" + client.usernameDenis + ")"); + log(`${client.usernameDenis} has disconnected`); }); client.on("message", (data) => { if(data.message.toLowerCase().includes("denis")) { io.sockets.emit("new-message", {author: client.usernameDenis, message: data.message}); - console.log(getCurrentTime() + ": (" + client.usernameDenis + ") : " + data.message); + log(`${client.usernameDenis} : ${data.message}`); + + messagesHistory.push([client.usernameDenis, data.message]); + if(messagesHistory.length > 20) { + messagesHistory.shift(); + } } else { client.emit("warning"); - console.log(getCurrentTime() + ": (" + client.usernameDenis + ") : " + data.message + "(invalid)"); + log(`${client.usernameDenis} : ${data.message} (INVALID)`); } }); lastUsername++; client.usernameDenis = "DenisFan" + lastUsername; client.emit("username", {username: "DenisFan" + lastUsername}); - console.log(getCurrentTime() + ": Client connection (" + client.usernameDenis + ")"); + log(`${client.usernameDenis} is now connected`); + + client.emit("previous-messages", {messages: messagesHistory}); }); app.use(express.static("src")); - app.listen(80, () => { - console.log(getCurrentTime() + ": Web server started on port 80") + log("Web server started on port 80") }); webHTTPSServer.listen(443, () => { - console.log(getCurrentTime() + ": Web HTTPS server started on port 443"); + log("Web HTTPS server started on port 443"); }); socketHTTPSServer.listen(3000, () => { - console.log(getCurrentTime() + ": Socket HTTPS server started on port 3000"); + log("Socket HTTPS server started on port 3000"); }); diff --git a/src/script.js b/src/script.js index 6ec8b5b..0e2328b 100644 --- a/src/script.js +++ b/src/script.js @@ -36,6 +36,12 @@ document.addEventListener("DOMContentLoaded", () => { addMessage("Rappel", "Vous devez parler uniquement de denis !"); }); + socket.on("previous-messages", (data) => { + data.messages.forEach(message => { + addMessage(message[0], message[1]); + }); + }); + } catch(error) { document.getElementById("value").innerText = "Serveur injoingnable !";