NodeMCU/LUA HTTP服务器没有向客户端输出任何内容
2016-2-4 2:11:42
收藏:0
阅读:55
评论:1
无法从Web服务器向无线客户端输出任何内容。 我使用的确切脚本(逐字)似乎比我尝试过的任何其他脚本都要更流畅和稳定。
一旦上载链接上的3个脚本到NodeMCU Dev(ESP8266-12E)上并按重置,脚本会像预期的那样通过串行端口输出状态:
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)
{ 30秒内重复 ... }
Status = 0 (Idle)
Status = 0 (Idle)
network not found, switching to AP mode
Starting up AP with SSID: Unconfigured-2c:36
GET received
上述输出显示了我使用另一个客户端连接到此AP(GET received),但客户端上从未有任何输出。 浏览器页面是空白的。
用于输出HTML页面的函数位于configServer.lua中:
function sendPage(conn)
conn:send('HTTP/1.1 200 OK\n\n')
...
这个例程中的没有一个conn:send()语句会在客户端上生成输出。 我尝试了多个客户端和多个浏览器。 我还在这个例程中设置了一些print()语句,并且可以看到它正在完全执行。
有人知道可能导致这种问题的问题类型或如何进行故障排除吗? 看起来这些脚本对其他尝试它们的人很有效。
我使用基于SDK v1.4.0构建的NodeMCU运行http://nodemcu-build.com。 它似乎工作良好:
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
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
因为它在NodeMCU 0.9.6上运行成功,所以它对其他人也有效。
使用NodeMCU 1.4.0,多次调用
conn:send()将无法工作。你需要将所有数据连接起来并一次性发送。
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')或者你可以在当前块发送后,基于
conn:on("sent", send_callback)发送另一块数据。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)