2016-03-24 26 views
0

Başka bir "sınıf" içinde oluşturulan bir işlevi çağırmaya çalışıyorum ve bunu socket.on (...) 'da kullanmak istiyorum, ancak çalışmıyorişlev node js soket kullanarak çağrı

'u görüntülemeye devam eder.Bu işlev bir işlev değildir. Burada

burada bothe Serveur.js ve ZoneCollaborative.js

//Serveur.js ful kodudur kod

//calling the function 

Serveur.prototype.traitementSurConnection = function(socket) { 
var that = this 
    socket.on('connection', function (creator, typeArtifact,idConteneur, typeConteneur) { 

     that.addArtifact('momo', 'img', 1,0); 

    }) 
}; 

//the function 

ZoneCollaborative.prototype.addArtifact = function(creator, typeArtifact,idConteneur, typeConteneur) { 

    // calcul d'un nouvel identifiant 

    var id = this.setIdAr(); 

    console.log(' *** ZC : calcul nouveau IdArtifact = '+id); 


    // création de l'artifact 

    var monArtifact = new Artifact(id, creator, typeArtifact, idConteneur, 

      typeConteneur); 

    console.log(' *** ZC : creation artifact'+monArtifact.getId()); 

    // ajout à la liste 

    this.artifacts.push(monArtifact); 


    console.log(' *** ZC : total artifact ='+ this.artifacts.length); 

}; 
+0

Daha fazla kod için Serveu r oluşturulması ve kullanımı. – dfsq

+0

"Serveur" ve "ZoneCollaborative" prototipi paylaşıyor mu? Bu durumda kodu gönderir misiniz? –

+0

hayır paylaşmıyorlar –

cevap

0

olduğunu

var http = require('http'); 

var socket = require('socket.io'); 

var ZP = require('./ZonePartage'); 

var Constantes = require('./Constante'); 

//création des constantes 

var CONSTANTE = new Constantes(); 

function Serveur(ZP, port) { 

    this.ZP = ZP; 

    this.port = port; 

    console.log(" ---- Creation d'un serveur pour la ZP (" + ZP.getId() 
      + ") sur le port " + port); 

    var serveur = http.createServer(function(req, res) { 

    }); 

    serveur.listen(this.port, function() { 

     console.log(' ---- Server en ecoute sur port ' + port); 

    }); 

    // 

    var io = require('socket.io').listen(serveur); 


    console.log(' ---- Socket en ecoute sur port ' + port); 

    browser = require('iotdb-arp');// module qui s'occupe de la determination de l'adress MAC 

    io.sockets.on('connection', (function(socket) { 

     console.log(' ---- Socket connection'); 
     console.log('un utilisateur est connecté'); 

     browser.browser({}, function(error, d) { 

      if (error) { 

       console.log("#", error); 

      } else if (d) { 

       var adresse = d.ip; 

       console.log('son adresse ip est ' + adresse); //obtenir l'adress ip de l'utilisateur connecté 

      } 
     }); 

     socket.on('disconnect', function() { 

      console.log(' ==> 1 utilisateur déconnecté <== '); //déconnection 
     }); 

     this.traitementSurConnection(socket); 

    }).bind(this)); 

    console.log(' ---- Socket en attente de traitement port ' + port); 
} 

module.exports = Serveur; 



Serveur.prototype.demandConnexion = function(idZEP) { 

    if (this.ZP.createZE(idZEP)) 

    { 

     console.log(' ==> socket : demande de creation ZE pour ' + idZEP 
       + ' accepte'); 

    } 

    else 

    { 

     console.log(' ==> socket : demande de creation ZE pour ' + idZEP 
       + ' refuse'); 

    } 

}; 

Serveur.prototype.traitementSurConnection = function(socket) { 
    console.log(' ==> socket connexion'); 

    var self = this; 
    socket.on('connection', function(creator, typeArtifact, idConteneur, 
      typeConteneur) { 

     self.addArtifact('momo', 'img', 1, 0); 

    }) 

      } 
    }); 

//ZoneCollaborative.js

ZoneCollaborative.prototype.addArtifact = function(creator, typeArtifact,idConteneur, typeConteneur) { 



    // calcul d'un nouvel identifiant 

    var id = this.setIdAr(); 

    console.log(' *** ZC : calcul nouveau IdArtifact = '+id); 


    // création de l'artifact 

    var monArtifact = new Artifact(id, creator, typeArtifact, idConteneur, 

      typeConteneur); 

    console.log(' *** ZC : creation artifact'+monArtifact.getId()); 

    // ajout à la liste 

    this.artifacts.push(monArtifact); 


    console.log(' *** ZC : total artifact ='+ this.artifacts.length); 

    };