美文网首页
一个服务器的程序

一个服务器的程序

作者: 王谙然 | 来源:发表于2017-01-06 16:58 被阅读75次

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

    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 等格式

    相关文章

      网友评论

          本文标题:一个服务器的程序

          本文链接:https://www.haomeiwen.com/subject/ymhxbttx.html