Comment détecter l’utilisateur annule la demande

J’essaie Node.js en écrivant un proxy très basique de mise en cache http / Web, et j’ai touché quelque chose que je n’ai pas réussi à percer.

En supposant que j’ai une fonctionnalité de proxy très basique (écouter une requête, la redirect vers un serveur externe, attendre la réponse, redirect la redirection vers le client), comment puis-je détecter le moment où le client (navigateur Web) annule la requête? Lorsque l’utilisateur clique sur “Arrêter” / Echap sur son navigateur, celui-ci ne m’envoie aucune “demande” ou information, et l’attachement d’un rappel pour la fin de la connexion “réponse” n’est pas appelé.

Voici ce que je veux dire:

http.createServer (clientRequest, clientResponse) { var client = http.createClient (port, hostname); var request = client.request (method, url, headers); request.addListener ('response', function(response){ response.addListener ('data', function(chunk){ // forward data to clientResponse.. } response.addListener ('end', function(){ // end clientResponse.. } }); clientResponse.addListener('end', function(){ // this never gets called :( // I want it to terminate the request/response created just above } } 

Il s’avère que je devrais être lié à l’événement “close” au lieu de l’événement “end” de la demande. Cela a du sens.
Je poste ceci ici pour toute autre personne susceptible de rencontrer le même problème:

 clientResponse.addListener('close', function(){ // this gets called when the user terminates his request } 

Voulez-vous peut-être un délai d’attente comme indiqué ici ?