/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));