我一直在阅读 NodeMCU 文档和几个关于 SDK 更改的已解决问题,这些问题以前允许发送多个数据流(就像排队的 net.socket:send 一样)。
似乎在这里(#730)和那里(#993)甚至这里(#999)引发了一场巨大的争论。但是,我没有找到任何令人信服的网络服务器代码示例,它允许我读取多个 html 文件(例如head.html
和body.html
)来显示一个页面。这是我尝试改编的来自 TerryE 的示例,但没有成功:
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on ("receive", function(sck, req)
local response = {}
local f = file.open("head.html","r")
if f ~= nil then
response[#response+1] = file.read()
file.close()
end
local f = file.open("body.html","r")
if f ~= nil then
response[#response+1] = file.read()
file.close()
end
local function sender (sck)
if #response>0 then sck:send(table.remove(response,1))
else sck:close()
end
end
sck:on("sent", sender)
sender(sck)
end )
end )
连接到 ESP8266 时,没有加载任何内容,并且我从 lua 终端没有收到任何错误。
供您参考,head.html
包含:
<html>
<head>
</head>
并body.html
包含:
<body>
<h1>Hello World</h1>
</body>
</html>
我对NodeMCU很陌生,请多多包涵。