一个服务器的程序

在 NodeMCU 上运行的 lua 程序,HTTP 控制 LED 亮灭。

一个服务器的程序_第1张图片
Video
// 启动一个 server 进程
srv=net.createServer(net.TCP)
// 监听一个端口,conn 某个客户端连接
srv:listen(8001,function(conn) 
    // 收到数据 ①
    conn:on("receive",function(conn,payload) 
    // 打印请求日志 ② 
    print(payload)
    // 解析 HTTP Header ③
    if (string.find(payload, "POST /power/on") ~= nil) then ④
        // 服务器逻辑,向 0 口输入低电压,LED灯亮 ⑤
        gpio.write(0, gpio.LOW)
        // 给客户端返回数据 ⑥
        conn:send("200 OK \r\n\r\nON")
    elseif (string.find(payload, "POST /power/off") ~= nil) then
        // 服务器逻辑,向 0 口输入高电压,LED灯灭
        gpio.write(0, gpio.HIGH)
        // 给客户端返回数据 
        conn:send("200 OK \r\n\r\nOFF")
    end
    // 处理结束,关闭本次请求 
    conn:close() 
    end) 
end)

代码虽少,但提包含了一个 HTTP Server 几大核心功能:

① 限流,代理
② 日志
③ HTTP 解析
④ 路由,URL 到处理函数的映射
⑤ 服务器逻辑处理,如数据库操作
⑥ 响应数据,HTML,JSON 等格式

你可能感兴趣的:(一个服务器的程序)