2022-09-21 12:09:38 +02:00

60 lines
1.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const fetch = require('node-fetch');
const WebSocket = require('ws');
var word;
var game;
function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
function getWordSize() {
return JSON.stringify(["Taille", word.length]);
}
function displayLetter(char) {
return JSON.stringify(["Char", char, word.indexOf(char)]);
}
// On créé notre Web Serveur qui écoute sur le port 8080
const wss = new WebSocket.Server({
port: 8080
});
fetch('http://localhost:3001/mots') // une requete GET
.then((response) => { // lorsque la requête est terminée on traite la réponse
response.json() // que lon passe en JSON
.then((mots) => { // On fois fait on peut travailler sur la liste des mots
word = mots[getRandomInt(Object.keys(mots).length)].value; //on choisi aléatoirement le mot dans la liste mots
console.log("Mot choisi : " + word); //on l'affiche sur notre console serveur pour tester plus facilement
game = word.length;
}
);
}).catch(error => console.error);
// Lorsqu'un client se connecte on reçoit un événement 'connection'
wss.on('connection', ws => {
ws.send(getWordSize());
// Lorsqu'il nous envoie un message on reçoit un événement message ainsi que le message !
ws.on('message', message => {
console.log(`Received message => ${message}`);
let char = message.charAt(1);
if(word.indexOf(char) > -1) {
game--;
ws.send(displayLetter(char));
if(game === 0) {
ws.send(JSON.stringify(["Partie", true]));
}
} else {
ws.send(JSON.stringify(["CharError"]));
}
});
})