Socket.io déconnexion du client
MichaelOfCourse
Messages postés
90
Statut
Membre
-
prosthetiks Messages postés 1309 Statut Membre -
prosthetiks Messages postés 1309 Statut Membre -
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 :
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 !
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:
- Socket.io déconnexion du client
- Cybera client - Télécharger - Divers Réseau & Wi-Fi
- Filezilla client - Télécharger - Téléchargement & Transfert
- Cybera Server - Télécharger - Divers Réseau & Wi-Fi
- Deconnexion intempestive du wifi - Guide
- Numéro service client orange - Guide