Skip to content
Snippets Groups Projects
Select Git revision
  • 79aa3270ddd048477beef85b2ab5668ac070a2b3
  • main default protected
  • adam
  • thomas
4 results

server.js

Blame
  • server.js 3.09 KiB
    var http = require('http');
    var fs = require('fs'); // Pour lire les fichiers
    var path = require('path'); // Pour gérer les chemins de fichiers
    var socketIo = require('socket.io');
    
    // Création du serveur HTTP
    var server = http.createServer((req, res) => {
        // Si l'URL est la racine ('/'), renvoyer la page_jeu.html depuis le dossier htdocs
        if (req.url === '/') {
            // Construction du chemin complet du fichier 'page_jeu.html'
            var filePath = path.join(__dirname, 'htdocs', 'page_jeu.html');
            
            fs.readFile(filePath, 'utf8', (err, data) => {
                if (err) {
                    res.writeHead(500, { "Content-Type": "text/plain" });
                    res.end("Erreur du serveur.");
                    return;
                }
                res.writeHead(200, { "Content-Type": "text/html" });
                res.end(data);
            });
        } else if (req.url.endsWith('.css')) {
            // Gérer les fichiers CSS
            var filePath = path.join(__dirname, 'htdocs', req.url);
            fs.readFile(filePath, (err, data) => {
                if (err) {
                    res.writeHead(404, { "Content-Type": "text/plain" });
                    res.end("CSS non trouvé.");
                    return;
                }
                res.writeHead(200, { "Content-Type": "text/css" });
                res.end(data);
            });
        } else if (req.url.endsWith('.js')) {
            // Gérer les fichiers JS
            var filePath = path.join(__dirname, 'htdocs', req.url);
            fs.readFile(filePath, (err, data) => {
                if (err) {
                    res.writeHead(404, { "Content-Type": "text/plain" });
                    res.end("JS non trouvé.");
                    return;
                }
                res.writeHead(200, { "Content-Type": "application/javascript" });
                res.end(data);
            });
        } else if (req.url.startsWith('/chess_pieces/')) {
            // Gérer les fichiers image dans le dossier 'chess_pieces'
            var filePath = path.join(__dirname, 'htdocs', req.url);
            fs.readFile(filePath, (err, data) => {
                if (err) {
                    res.writeHead(404, { "Content-Type": "text/plain" });
                    res.end("Image non trouvée.");
                    return;
                }
                res.writeHead(200, { "Content-Type": "image/png" });
                res.end(data);
            });
        } else {
            // Autres requêtes peuvent être traitées ici
            res.writeHead(404, { "Content-Type": "text/plain" });
            res.end("Page non trouvée.");
        }
    });
    
    // Lier Socket.io au serveur HTTP
    var io = socketIo(server);
    
    io.on('connection', function (socket) {
        console.log("Un client est connecté : " + socket.id);
    
        // Envoyer un message "hello" au client
        socket.emit('hello', { 'this': 'is my data' });
        // Écouter un message du client (optionnel)
        socket.on('message', function (data) {
            console.log("Message reçu du client :", data);
        socket.on('disconnect', () => {
             console.log('Le client est déconnecté');
        });
        });
    
    });
    
    // Lancer le serveur sur le port 8080
    server.listen(8080, () => {
        console.log("Serveur WebSocket démarré sur http://localhost:8080");
    });