我正在尝试使用NodeMCU创建一个简单的HTTP服务器 . 我启动nodeMCU然后将其连接到wifi,然后运行下面的程序 . 我可以从浏览器连接到服务器 . 如果我继续重新加载页面它将永远工作,但当我停止发送一两分钟的请求时,服务器将以某种方式停止运行 . 这意味着,当我重新加载页面nodeMCU没有收到任何数据(并且不能返回任何数据) .
a=0
function receive(conn,payload)
a=a+1
print(payload)
local content="
Hello!
Since the start of the server " .. a .. " connections were made
"local contentLength=string.len(content)
conn:send("HTTP/1.1 200 OK\r\nContent-Length:" .. contentLength .. "\r\n\r\n" .. content)
conn:close()
end
function connection(conn)
conn:on("receive",receive)
end
srv=net.createServer(net.TCP,1)
srv:listen(8080,connection)
我做过的一些事情:
我已经阻止浏览器通过将链接添加到任何内容来请求favicon .
我将非活动客户端的超时设置为1,以防止浏览器长时间加载(浏览器一直加载到超时) .
我更新了我的代码以发送一些HTTP标头 .
我尝试在每次连接后关闭并打开服务器(没有好处,因为如果你继续进行连接,即使没有这个修复也不会停止工作) .
我按照StackOverflow上的答案的建议添加了 conn:close() .
我正在运行预编译固件0.9.6-dev_20150704整数 .