Polling longtemps Mochiweb - Comment savoir si demander Abandonne client?
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?
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.