Question

J'ai une boucle d'interrogation de base mochiweb qui ressemble à ce qui suit, sauf qu'il fait d'autres choses au lieu d'imprimer à la console et éventuellement des retours:

blah() -> 
  io:format("Blah")
  blah()

loop(Req) ->
  PathParts = string:tokens(Req:get(path), "/")
  case PathParts of
    ["poll"] -> 
      blah()

Cela fonctionne très bien jusqu'à ce que le client leur demande avorte. Par exemple, si la fenêtre du client est fermé, ce processus continue à fonctionner indéfiniment.

Je voudrais savoir s'il y a une option dans le début de mochiweb () ou peut-être quelque chose d'autre, je suis avec vue qui aurait mochiweb automatiquement fin de ce processus, ou au moins envoyer un message sur abort client. Toutes les idées?

Était-ce utile?

La solution

On dirait un solution est la mise en place d'un autre processus à plusieurs reprises appel gen_tcp:recv(Req:get(socket), 0, 1) et à la recherche du résultat {error, closed}, puis tuer le processus de vote si elle est reçue ... Je ne sais pas si cela est optimal bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top