Socket.io déconnexion du client

MichaelOfCourse Messages postés 87 Date d'inscription   Statut Membre Dernière intervention   -  
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai découvert il y a peu le javascript et socket.io, et comme premier programme je voulais m'entrainer sur un minichat en ligne.

Là où je me pers un peu c'est sur la partie serveur, j'y possède une fonction qui vient ping le client pour vérifier que la page est toujours ouverte, et qui le déconnecte lorsque ce n'est plus le cas, cependant même si le client est déconnecté je n'arrive pas à faire en sorte que le serveur le comprenne...

Je m'explique surement mal alors je vous offre une partie du code :


sock.on('connection', function (client){
console.log("Client connecté");
client.on('login', function (pseudo){
if (checkPseudo(pseudo)){//Verification de la non utilisation du pseudo

writePseudo(pseudo);

console.log(pseudo + " logged in"); // inscription de la connexion dans la console
var msgServ = pseudo + " logged in.";
var msgServEmit = {'pseudo': "Server", 'message': msgServ};
sock.emit('msg', msgServEmit);// Envoie d'un message lgged in sur le chat

setInterval(function () {
var d = new Date();
var t = d.getTime();
sock.emit('ping', t);//test du ping
}, 5000);

var lastPong;

client.on('pong', function(t){
lastPong = t;// reception du pong
});

setInterval(function () {
var e = new Date();
var f = e.getTime();
if ( f - lastPong <= 12000){ // test du ping timeout
return 0;
}
else {
console.log(pseudo + " logged out (ping TimeOut)"); // inscription de la deconnexion dans la console
var msgServ = pseudo + " logged out (ping TimeOut).";
var msgServEmit = {'pseudo': "Server", 'message': msgServ};
sock.emit('msg', msgServEmit);// Envoie d'un message logged out sur le chat
disconnect(client);
}

}, 20000);

client.on('msg', function (msg){// Reception d'un message
var message = {'pseudo': pseudo, 'message': msg}; // Création de l'objet message
sock.emit('msg', message);//Envoie du message
});


client.on('quit', function (client){//
console.log(pseudo + " logged out"); // inscription de la deconnexion dans la console
var msgServ = pseudo + " logged out.";
var msgServEmit = {'pseudo': "Server", 'message': msgServ};
sock.emit('msg', msgServEmit);// Envoie d'un message logged out sur le chat
disconnect(client);
});
}
});
});


Ce que je voudrais c'est trouver comment il est possible de faire en sorte qu'une fois le client déconnecté il ne puisse plus envoyer de message, et que le serveur ne lui envoie plus de ping.. En gros comment sortir de "sock.on('connection')..."

Merci énormément d'avance et bonne journée !
A voir également:

1 réponse

prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
Hello,

regarde du côté de l'event 'disconnect':


socket.on("disconnect", function(){
console.log("client disconnected from server");
});
0