我正在做一个长轮询请求,将超时设置为 10 秒,但它似乎不起作用。我的理解是,如果我们在指定的超时时间内没有得到后端的响应,后端调用应该以timedout
错误代码结束。是这样吗?
但是,如果我使用一个非常小的超时,例如 0.001,它就可以工作。所以我认为如果一个请求已经发送到后端,超时不起作用。
对于我的长轮询请求,如果在发送请求并等待响应时我的网络出现故障,lua 套接字会挂在那里并且永远不会从这种情况中恢复。如果我能以任何其他方式处理这个问题,你能帮我吗?
我的 Lua 版本 - Lua 5.1.4 版权所有 (C) 1994-2008 Lua.org, PUC-Rio (double int32)
代码尖晶石:
local http = require "socket.http"
local https = require "ssl.https"
http.TIMEOUT = 10
local r,s,h = https.request({
url = url,
method = "GET",
sink = ltn12.sink.table(results),
headers = {
["Cache-Control"] = "no-cache",
["X-Token"] = config.token
}
})