gpt4 book ai didi

erlang - Mochiweb 中的长轮询 - 如何判断客户端是否中止请求?

转载 作者:行者123 更新时间:2023-12-01 06:47:46 24 4
gpt4 key购买 nike

我有一个基本的 mochiweb 轮询循​​环,如下所示,除了它执行其他操作而不是打印到控制台并最终返回:

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

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

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

我想知道 mochiweb 的 start() 中是否有一个选项,或者我忽略的其他东西会让 mochiweb 自动终止这个过程,或者至少在客户端中止时发送一条消息。有任何想法吗?

最佳答案

看起来一个解决方案是设置另一个进程重复调用 gen_tcp:recv(Req:get(socket), 0, 1)并寻找结果 {error, closed} ,然后在收到轮询过程时终止轮询过程......但不确定这是否是最佳的。

关于erlang - Mochiweb 中的长轮询 - 如何判断客户端是否中止请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3097453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com