30-10-2012, 05:53 PM
Citation :Des fois des petites recherches ça fait pas de mal ... http://www.jeuweb.org/showthread.php?tid...#pid104222
Citation :http://socket.io/#how-to-use ...C'est sympa de me le rappeler, mais j'avais déjà lu tout cela avant de poster.
Citation :socket.on('disconnect', function() {
});
Que ça pour une fermeture de l'onglet, un changement de page, etc cela fonctionne... A toi de traiter ça comme il faut derrière !
Citation :Par contre je çrois que tu ne peux pas tout capterMalheureusement Ter Rowan semble avoir raison vu le nombre de post traitant du sujet que j'ai trouvé sur stackoverflow.
Ce qui est bizarre, c'est que mes tests semblent bien détecté la déconnexion. Puisque le console.log() enregistre l'information ( mais pas toujours apparement ). Mais l'emit n'est pas envoyé ( et non présent dans la console ) !
Exemple du test :
Le server => [pastebin]M4wXFMN8[/pastebin]
Le client => [pastebin]riaRditf[/pastebin]
Résultats :
Déconnexion YBSeLXI7YSmWWIKJVc8c obtenu lorsque sous firefox je clic sur un lien ou ferme l'onglet.
Rien n'est obtenu lorsque sous Opéra je clic sur un lien ou ferme l'onglet.
Rien n'est reçu par Opéra ou Firefox ( le emit ) même si le console.log() indique la déconnexion.
Citation :ne autre solution qui me vient en tête(sans verif) est d envoyer via ta chaussette une question es tu la au client toutes les x secondes. Si il ne répond pas, c est qu il n est plus laJe comptais justement partir sur une solution similaire. Chaque client va recevoir de la part des autres clients : le login du client connecté + un ttl. Et un simple setInterval qui virera les ttl qui dépasse x secondes.
Mais ta solution me semble plus approprié. J'vais tester cela.