Fermeture d'un socket côté serveur

Par pa.lucas, il y a 10 ans


Javascript NodeJS

Je rencontre actuellement un problème avec la fermeture de socket. A la fermeture du client, le serveur reçoit bien la notification de déconnexion, mais le socket côté serveur reste ouvert (j'ai placé un timer pour montrer que malgré la déconnexion, celui-ci continue).

Après de nombreuses lectures et divers essais, je ne vois pas ce qui peut ce qui peut bloquer.
Ci joint une copie du code côté serveur .

Merci pour l'aide, cordialement

Pascal

io.sockets.on('connection', function (socket) { var compteur=0; // Ouverture d'un nouveau socket (nouveau client connecté) console.log('Nouveau client connecte....', socket.id); socket.on('disconnect', function () { console.log('Deconnexion du Socket : ',socket.id); //socket.manager.onClientDisconnect(socket.id); //--> endless loop with this disconnect event on server side //socket.disconnect(true); //--> same here //socket.conn.close(); socket.conn.close(true); //socket.onclose('Depart Client'); //socket.leave(); //socket.disconnect(socket.id); //socket.manager.onClientDisconnect(socket.id); //socket.io.close(); }); var intrvlId = setInterval(function() { compteur++; console.log('Test tmer id : ',socket.id, ' Compteur = ',compteur); socket.emit('Requete Serveur', { compteur : compteur }); // Transmission de la valeur du compteur }, 5000); // Gestion des requetes recues socket.on('Requete Client', function (data) { console.log('Chaine Transmise : ',data); if(data.action) { // Extraction des commandes console.log('Commande client : ', data.action); switch(data.action) { case 'actualisation': socket.emit('Requete Serveur', { compteur: compteur }); // Envoi de la valeur du compteur au client console.log('Actualisation de la page'); break; default: console.log('Requete non reconnue...'); break; } } }); });

Ci dessous une copie des logs obtenus en mode DEBUG.

engine:socket sending packet "message" (2["Requete Serveur",{"compteur":5}]) +17ms engine:socket flushing buffer to transport +1ms engine:ws writing "42["Requete Serveur",{"compteur":5}]" +1ms socket.io:client client close with reason transport close +1s socket.io:socket closing socket - reason transport close +26s socket.io:client ignoring remove for 03ld0pKdAoOo0Ej4AAAA +8ms Deconnexion du Socket : 03ld0pKdAoOo0Ej4AAAA Test tmer id : 03ld0pKdAoOo0Ej4AAAA Compteur = 6 socket.io:client ignoring packet write {"type":2,"data":["Requete Serveur",{"compteur":6}],"nsp":"/"} +3s Test tmer id : 03ld0pKdAoOo0Ej4AAAA Compteur = 7 socket.io:client ignoring packet write {"type":2,"data":["Requete serveur",{"compteur":7}],"nsp":"/"} +5s

Aucune réponse