/home2/mshostin/live-dashboard/server.js
const express = require("express");
const http = require("http");
const { Server } = require("socket.io");
const path = require("path");
const app = express();
const server = http.createServer(app);
// Servir les fichiers statiques
app.use("/", express.static(path.join(__dirname, "public")));
// Socket.io
const io = new Server(server, {
path: '/live-dashboard/socket.io',
cors: { origin: "*" }
});
let users = {};
io.on("connection", (socket) => {
console.log("Utilisateur connecté:", socket.id);
// --- Mise à jour de la page visitée
socket.on("page_visit", (data) => {
users[socket.id] = { page: data.page };
io.emit("users_update", users);
});
// --- Redirection depuis le dashboard
socket.on("redirect_user", ({ targetSocket, page }) => {
console.log(`Rediriger ${targetSocket} vers ${page}`);
io.to(targetSocket).emit("force_redirect", page);
// 🔄 Mettre à jour la page côté serveur pour le dashboard
if (users[targetSocket]) {
users[targetSocket].page = page;
io.emit("users_update", users);
}
});
// --- Déconnexion
socket.on("disconnect", () => {
delete users[socket.id];
io.emit("users_update", users);
});
});
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => console.log("Server running on port " + PORT));