const fs = require("fs"); const https = require("https"); const express = require("express"); const socketio = require("socket.io"); const app = express(); const https_options = { key: fs.readFileSync("./privkey.pem"), cert: fs.readFileSync("./fullchain.pem"), requestCert: false, rejectUnauthorized: false } const socketHTTPSServer = https.createServer(https_options, app); const webHTTPSServer = https.createServer(https_options, app); const io = socketio(socketHTTPSServer, { cors: { origin: "https://danby.aniere.fr", }, secure: true }); function getCurrentTime() { function addZero(i) { if (i < 10) { i = "0" + i; } return i; } var d = new Date(); var h = addZero(d.getHours()); var m = addZero(d.getMinutes()); var s = addZero(d.getSeconds()); return h + ":" + m + ":" + s; }; usersConnected = 0; lastUsername = 0; io.on("connection", (client) => { usersConnected++; io.sockets.emit("update-count", {value: usersConnected}); client.on("disconnect", () => { usersConnected--; io.sockets.emit("update-count", {value: usersConnected}); console.log(getCurrentTime() + ": Client disconnection (" + client.usernameDenis + ")"); }); 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); } else { client.emit("warning"); console.log(getCurrentTime() + ": (" + client.usernameDenis + ") : " + data.message + "(invalid)"); } }); lastUsername++; client.usernameDenis = "DenisFan" + lastUsername; client.emit("username", {username: "DenisFan" + lastUsername}); console.log(getCurrentTime() + ": Client connection (" + client.usernameDenis + ")"); }); app.use(express.static("src")); app.listen(80, () => { console.log(getCurrentTime() + ": Web server started on port 80") }); webHTTPSServer.listen(443, () => { console.log(getCurrentTime() + ": Web HTTPS server started on port 443"); }); socketHTTPSServer.listen(3000, () => { console.log(getCurrentTime() + ": Socket HTTPS server started on port 3000"); });