摩西韦布(Mochiweb)进行长期民意调查 - 如何判断客户是否中止了请求?

StackOverflow https://stackoverflow.com/questions/3097453

  •  29-09-2019
  •  | 
  •  

我有一个基本的Mochiweb投票循环,看起来如下,除了它可以做其他事情,而不是打印到控制台并最终返回:

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

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

这效果很好,直到客户流产他们的请求为止。例如,如果关闭客户端窗口,此过程将无限期地运行。

我想知道Mochiweb的Start()中是否有一个选项,或者我忽略的其他内容会自动终止此过程,或者至少在客户端流产上发送消息。有任何想法吗?

有帮助吗?

解决方案

好像 解决方案正在设置另一个过程以重复致电 gen_tcp:recv(Req:get(socket), 0, 1) 并寻找结果 {error, closed}, ,然后杀死投票过程,如果收到了投票过程……不确定这是否是最佳的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top