2013-06-18 2 views
0

J'ai un site Web qui utilise un sondage long pour attendre que le serveur finisse de traiter certaines données. Cependant, un dépassement de délai peut se produire ou l'utilisateur peut fermer son navigateur, mais le serveur traite continuellement ses données.
Je souhaite que le serveur arrête de traiter les données dès que la connexion de sondage longue est rompue. Aucun client ne recevra les données, il ne sert donc à rien de poursuivre ce long processus ... Comment faire?Détection de la rupture de la connexion au client du navigateur

Le serveur travaille sur l'ajout de fichiers à une archive ZIP, ce qui prend un certain temps car ce sont de gros fichiers raisonnables. Une fois cela fait, il enverra le fichier ZIP final et fermera la connexion. Mais si le client est déconnecté avant la fin de la tâche, le serveur devrait arrêter son travail et tout rejeter ...

Répondre

3

Vous devriez envisager d'utiliser le framework SignalR. Il propose des événements très confortables comme OnConnect() et OnDisconnect(). Sous le capot, il travaille avec

  • WebSockets
  • serveur envoyés des événements
  • toujours Bordure
  • vote à long

Il utilise tout ce qui est disponible avec l'environnement donné, en commençant par WebSockets.

+1

True. Seulement, HTML5 est une exigence et plusieurs utilisateurs sont toujours sur les anciens navigateurs. –

Questions connexes