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