Sockets 使用Nodemcu Esp8266 lua编程中的client:Send()发送整个html代码

Sockets 使用Nodemcu Esp8266 lua编程中的client:Send()发送整个html代码,sockets,http,lua,webserver,esp8266,Sockets,Http,Lua,Webserver,Esp8266,我创建了一个lua文件,该文件实现了一个2relay模块,用于通过网站控制滚动快门。 我遵循了led_Web服务器示例,并从中扩展了代码。 我尝试了很多方法,通过函数client:send(), 但它似乎不起作用 这是我自己开发的一个页面,可以在pc上运行,但我找不到一种简单的方式发送它。 我声明了一个包含所有html代码的局部变量(例如test),然后将其作为参数放入'client:send(test)。 有人知道另一种方法吗?您可以使用以下方法: buf = "<h1>

我创建了一个lua文件,该文件实现了一个2relay模块,用于通过网站控制滚动快门。
我遵循了led_Web服务器示例,并从中扩展了代码。
我尝试了很多方法,通过函数
client:send()

但它似乎不起作用


这是我自己开发的一个页面,可以在pc上运行,但我找不到一种简单的方式发送它。
我声明了一个包含所有html代码的局部变量(例如test),然后将其作为参数放入'client:send(test)。

有人知道另一种方法吗?

您可以使用以下方法:

    buf = "<h1> ESP8266 Web Server</h1>";
    buf = buf.."<h2>Subtitle</h2>";
    client:send(buf);
buf=“ESP8266 Web服务器”;
buf=buf.“副标题”;
客户:发送(buf);

您可以使用以下功能:

    buf = "<h1> ESP8266 Web Server</h1>";
    buf = buf.."<h2>Subtitle</h2>";
    client:send(buf);
buf=“ESP8266 Web服务器”;
buf=buf.“副标题”;
客户:发送(buf);

您可以使用以下功能:

    buf = "<h1> ESP8266 Web Server</h1>";
    buf = buf.."<h2>Subtitle</h2>";
    client:send(buf);
buf=“ESP8266 Web服务器”;
buf=buf.“副标题”;
客户:发送(buf);

您可以使用以下功能:

    buf = "<h1> ESP8266 Web Server</h1>";
    buf = buf.."<h2>Subtitle</h2>";
    client:send(buf);
buf=“ESP8266 Web服务器”;
buf=buf.“副标题”;
客户:发送(buf);

在一次调用中发送超过几百个字节的数据失败的几率更大。还要认识到,在同一个lua块中发送的多个连续调用在该块返回后排队并异步执行——这会消耗不切实际的内存量


因此,使用串联的运行时值构建任何复杂的页面都是有问题的。一种更合理的方法是,ESP8266只将数据作为JSON返回,并从PC上提供精美的页面,使用嵌入式脚本查询ESP并将数据折叠到页面中。

在一次调用中发送超过数百字节的数据往往失败。还要认识到,在同一个lua块中发送的多个连续调用在该块返回后排队并异步执行——这会消耗不切实际的内存量


因此,使用串联的运行时值构建任何复杂的页面都是有问题的。一种更合理的方法是,ESP8266只将数据作为JSON返回,并从PC上提供精美的页面,使用嵌入式脚本查询ESP并将数据折叠到页面中。

在一次调用中发送超过数百字节的数据往往失败。还要认识到,在同一个lua块中发送的多个连续调用在该块返回后排队并异步执行——这会消耗不切实际的内存量


因此,使用串联的运行时值构建任何复杂的页面都是有问题的。一种更合理的方法是,ESP8266只将数据作为JSON返回,并从PC上提供精美的页面,使用嵌入式脚本查询ESP并将数据折叠到页面中。

在一次调用中发送超过数百字节的数据往往失败。还要认识到,在同一个lua块中发送的多个连续调用在该块返回后排队并异步执行——这会消耗不切实际的内存量


因此,使用串联的运行时值构建任何复杂的页面都是有问题的。一种更合理的方法是,ESP8266只返回JSON格式的数据,并从PC上提供精美的页面,使用嵌入式脚本查询ESP并将数据折叠到页面中。

eps8266上的TCP堆栈不支持跨IP数据包的流式传输。每次发送最多可以是一个完整的IP数据包,但长度超过该数据包,您可以使用
soc:on(“sent”,callback)
逐个数据包发送这些数据包。有关此问题的详细讨论,请参阅。

eps8266上的TCP堆栈不支持跨IP数据包的流传输。每次发送最多可以是一个完整的IP数据包,但长度超过该数据包,您可以使用
soc:on(“sent”,callback)
逐个数据包发送这些数据包。有关此问题的详细讨论,请参阅。

eps8266上的TCP堆栈不支持跨IP数据包的流传输。每次发送最多可以是一个完整的IP数据包,但长度超过该数据包,您可以使用
soc:on(“sent”,callback)
逐个数据包发送这些数据包。有关此问题的详细讨论,请参阅。

eps8266上的TCP堆栈不支持跨IP数据包的流传输。每次发送最多可以是一个完整的IP数据包,但长度超过该数据包,您可以使用
soc:on(“sent”,callback)
逐个数据包发送这些数据包。有关这方面的更多讨论,请参阅。

我找到了一个简单的解决方案。 我必须发送一个包含文本的大文件,并使用以下代码:

    file.open("example.txt","r") 
    for counter=1, numboflinesinfile-1 do
    client:send(file.readline() .. "<br>");  
    end           
    file.close()
file.open(“example.txt”、“r”)
对于计数器=1,numboflinesinfile-1 do
客户端:发送(file.readline()..“
”; 结束 file.close()文件
计数器只是一个计数变量 NumberOfLinesFile是要发送的行数


这不是一个干净的解决方案,可能违反了所有的程序规则,但却起到了魅力的作用。

我找到了一个简单的解决方案。 我必须发送一个包含文本的大文件,并使用以下代码:

    file.open("example.txt","r") 
    for counter=1, numboflinesinfile-1 do
    client:send(file.readline() .. "<br>");  
    end           
    file.close()
file.open(“example.txt”、“r”)
对于计数器=1,numboflinesinfile-1 do
客户端:发送(file.readline()..“
”; 结束 file.close()文件
计数器只是一个计数变量 NumberOfLinesFile是要发送的行数


这不是一个干净的解决方案,可能违反了所有的程序规则,但却起到了魅力的作用。

我找到了一个简单的解决方案。 我必须发送一个包含文本的大文件,并使用以下代码:

    file.open("example.txt","r") 
    for counter=1, numboflinesinfile-1 do
    client:send(file.readline() .. "<br>");  
    end           
    file.close()
file.open(“example.txt”、“r”)
对于计数器=1,numboflinesinfile-1 do
客户端:发送(file.readline()..“
”; 结束 file.close()文件
计数器只是一个计数变量 NumberOfLinesFile是要发送的行数

不是一个干净的解决方案,可能违反了所有的程序规则,但作为一个字符工作