12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- var io = require('socket.io'); // Chargement du module pour mettre en place les websockets
- var http = require('http');
- var json;
- // Variables
- var server; // Le socket
-
- var lobby = [];
- var games = [];
- // Gestion des evenements
- // Attend l'évènement "connection"
- // Le client génère cet évènement lorsque la connexion est établie avec le serveur (voir l'établissement de connexion côté client)
- // En cas de connexion appel à la fonctione onSocketConnection
- // Un paramètre est envoyé en paramètre de l'évènement "connection" : ce paramètre représente le client
- var setEventHandlers = function() {
- server.sockets.on("connection", onSocketConnection);
- };
-
-
- function apiReq() {
- http.get("http://localhost/burger-quizz/web/api/", function(res) {
- var data = "";
- res.on("data", function(returned) {
- data += returned;
- })
- res.on("end", function() {
- json = JSON.parse(data.toString());
- })
- });
- }
- // Fonction prenant en paramètre le client (voir ci-dessus)
- // Réception ou envoi d'évènement à partir de cet objet : client
- function onSocketConnection(client) {
-
- // Attente de l'évènement "new"
- // Dans cet exemple l'évènement "new" est envoyé avec un paramètre "pseudo"
- client.on('nouveau', function(pseudo) {
- // Log pour debug
- console.log('Nouveau joueur : '+ pseudo +' !');
- // Envoi d'un message au client
- //client.emit('message', 'bien reçu !!');
-
- if(lobby.length > 0) {
- games.push({joueur1: lobby[0], joueur2: {login: pseudo, socket: client}, idGame: games.length, json: ''});
- games[games.length-1].joueur1.socket.emit("game", [games[games.length-1].joueur2.login, games[games.length-1].idGame]);
- games[games.length-1].joueur2.socket.emit("game", [games[games.length-1].joueur1.login, games[games.length-1].idGame]);
- lobby = [];
- } else {
- lobby.push({login: pseudo, socket: client});
- }
- // Envoi d'un message aux autres clients connectés
- //client.broadcast.emit('autres', pseudo);
- });
- client.on('error', function(err) {
- console.log(err);
- });
- client.on('start', function(gameID) {
- if(!games[gameID].json) {
- console.log("slt");
- apiReq();
- games[gameID].json = json;
- }
- console.log(json);
- client.emit('questions', games[gameID].json);
- });
-
- };
-
- // Initialisation
- function init() {
- // Le server temps réel écoute sur le port 8000
- server = io.listen(8000);
-
- // Gestion des évènements
- setEventHandlers();
-
- };
-
- // Lance l'initialisation
- init();
|