NodeMCU/LUA HTTP服务器没有输出到客户端
我无法从web服务器获取无线客户端的任何输出。我使用的(逐字记录)似乎比我尝试过的任何其他方法都更优雅、更稳定 一旦上述链接中的3个脚本上传到NodeMCU-Dev(ESP8266-12E)并按下reset,脚本将按预期通过串行端口输出状态:NodeMCU/LUA HTTP服务器没有输出到客户端,lua,esp8266,nodemcu,Lua,Esp8266,Nodemcu,我无法从web服务器获取无线客户端的任何输出。我使用的(逐字记录)似乎比我尝试过的任何其他方法都更优雅、更稳定 一旦上述链接中的3个脚本上传到NodeMCU-Dev(ESP8266-12E)并按下reset,脚本将按预期通过串行端口输出状态: Communication with MCU... Got answer! AutoDetect firmware... NodeMCU firmware detected. =node.hStatus = 0 (Idle) eap() 36936 &g
Communication with MCU...
Got answer! AutoDetect firmware...
NodeMCU firmware detected.
=node.hStatus = 0 (Idle)
eap()
36936
> Status = 0 (Idle)
Status = 0 (Idle)
Status = 0 (Idle)
{ repeats for 30 seconds ... }
Status = 0 (Idle)
Status = 0 (Idle)
network not found, switching to AP mode
Starting up AP with SSID: Unconfigured-2c:36
GET received
上面的输出显示了我与另一个客户端(GET received)连接到此AP,但客户端上从未有任何输出。浏览器页面为空
为输出HTML页面而调用的函数位于configServer.lua中:
function sendPage(conn)
conn:send('HTTP/1.1 200 OK\n\n')
...
所有conn:send()
语句都不会在客户端生成任何输出。我试过使用多个客户端和多个浏览器。我还在这个例程中设置了一些print()
语句,可以看到它正在完全执行
有没有人知道什么类型的问题会导致这种情况,或者如何进行故障排除?似乎这些脚本对其他尝试过它们的人很有效
我运行使用构建的NodeMCU。它基于sdkv1.4.0。看起来效果不错:
NodeMCU custom build by frightanic.com
branch: master
commit: c8037568571edb5c568c2f8231e4f8ce0683b883
SSL: false
modules: adc,bit,cjson,coap,crypto,dht,enduser_setup,file,gpio,i2c,mqtt,net,node,pwm,rtctime,spi,tmr,u8g,uart,wifi
build built on: 2016-02-03 23:59
powered by Lua 5.1.4 on SDK 1.4.0
它适用于其他人,因为它适用于NodeMCU 0.9.6 您需要将所有数据连接在一起并一次性发送
conn:send('HTTP/1.1 200 OK\n\n<!DOCTYPE HTML>\n<html>\n<head><meta content="text/html; charset=utf-8">\n<title>Device Configuration</title></head>\n<body>\n<form action="/" method="POST">\n')
除了@gre_gor的正确答案,这里还有官方文档:。此外,您应该注意,当前的
dev
分支有一个简化您生活的HTTP模块:
local response = {
'HTTP/1.1 200 OK\n\n',
'<!DOCTYPE HTML>\n<html>\n<head><meta content="text/html; charset=utf-8">\n<title>Device Configuration</title></head>\n<body>\n<form action="/" method="POST">\n'
}
local function sender(conn)
if #response>0 then conn:send(table.remove(response,1))
else conn:close()
end
end
conn:on("sent", sender)
sender(conn)