Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Gaëtan Bervet ID4 : TP3 PokéJax
- */
- "use strict";
- var http = require('http');
- var url = require('url');
- var pokedex = require('pokemon.json');
- var routing = require("moduleRouting");
- var querystring = require('querystring');
- var WebSocketServer = require('ws').Server;
- var wss = new WebSocketServer({port: 8000});
- var pokedexLength = 151;
- var userTab = [pokedexLength];
- for (var i = userTab.length - 1; i >= 0; i--) {
- userTab[i] = new Array();
- };
- var nbUserStatic = 0;
- // Objet utilisateur
- /*function User(id, message){
- this.id = staticId ++;
- this.message = "";
- }*/
- //Objet message
- function Message(ident, message){
- this.id = ident;
- this.message = message;
- }
- //Objet paquet permettant de recevoir une chatRoom ou un message
- function paquet(pokemon, type){
- this.type = type;
- this.content = pokemon;
- }
- //Compte le nombre d'utilisateurs connectés
- /*function userCount(){
- var nbUser = 0;
- for (var i = userTab.length - 1; i >= 0; i--) {
- if(userTab[i]!=null){
- nbUser ++;
- }
- };
- return nbUser;
- }*/
- //fonction broadcast du dernier message reçu
- function sendMessageToAll(message, socket){
- userTab[socket.chatRoom.content].forEach(function(socketTMP)
- {
- socketTMP.send(JSON.stringify(message));
- });
- /*for (var i = userTab[socket.chatRoom.content].length - 1; i >= 0; i--) {
- userTab[socket.chatRoom.content][i].send(JSON.stringify(message));
- };*/
- }
- //Rangement du socket selon sa chatRoom
- function pushSocket(ws){
- userTab[ws.chatRoom.content].push(ws);
- }
- wss.on('connection', function (ws) {
- console.log("connection demandée");
- ws.ident = nbUserStatic ++;
- ws.on('message', function (message) {
- console.log('received: ', message);
- var messageReceived = JSON.parse(message);
- if( messageReceived.type == "chatRoom"){
- var chatRoom = messageReceived;
- ws.chatRoom = chatRoom;
- pushSocket(ws);
- var m = new Message("Admin", "bonjour " + ws.ident);
- sendMessageToAll(m,ws);
- }
- else if (messageReceived.type == "message") {
- var mess = new Message();
- mess.id = ws.ident;
- mess.message = messageReceived.content;
- console.log(mess.id + "envoie un message");
- sendMessageToAll(mess, ws);
- };
- });
- console.log("connection demandée");
- //ws.send('something');
- });
- function contains(str1, str2)
- {
- var i = 0;
- var result = true;
- while(i<str1.length)
- {
- if (str2.charAt(i) != str1.charAt(i)) {result = false;}
- i++;
- }
- return result;
- }
- var poketri = pokedex.map(function(pokemon){
- return {
- ndex: pokemon.ndex,
- nom: pokemon.nom,
- type: pokemon.type1
- }
- });
- var selectPokemons = function(req, rep){
- var poke;
- var query = querystring.parse(url.parse(req.url).query);
- if("nom" in query)
- {
- /*var i = 0;
- while(!contains(query.nom,pokedex[i].nom) && i < pokedex.length)
- {
- i++;
- }
- poke = pokedex[i];*/
- var poke = poketri.filter(function(row) {
- //if (row.Nom.indexOf(requete)>=0) return true;
- return contains(query.nom,row.nom);
- });
- }
- rep.writeHead(200, {
- 'Content-Type': 'application/json'
- });
- rep.end(JSON.stringify(poke));
- return;
- }
- var notFound = function notFound (request, response) {
- console.log("Entrée dans le callback : notFound()")
- response.writeHead(404, {"Content-Type": "text/plain"});
- response.write("404 Not Found\n");
- response.end();
- return;
- };
- http.createServer(
- routing.createRoutingFunction([
- {re:/^\/$/, fi:'../client/index.html',},
- {re:/selectPokemons\?/, cb:selectPokemons,},
- {re:/.*/, cb:notFound,}
- ]
- )
- ).listen(8080);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement