ESP8266 webserver meerdere pagina's levert (4 / 5 stap)

Stap 4: Bewerkt bestand van de server genaamd newserver.lua, de sleutel tot multi-webpagina's.

Ik heb nu geupload de dossiers genoemd index.htm, newserver.lua en bob.htm naar de module; Opgestart en ingevoerde dofile("newserver.lua").

Het invoeren van mijn module'a IP-nummer, moet het bestand index.htm weergegeven. Bob.htm te klikken op de link naar Bob verschijnt, maar thuis gaat terug naar de indexpagina.

Enige discussie over newserver.lua:

Ik heb index.htm gecodeerd als het bestand 'landing'. Ik wil de module om te dienen index.htm wanneer ik voer van de module IP-adres in een browser.

Ik ben met behulp van LUA code te parsen van de binnenkomende request header om te bepalen als het verzoek Hiermee geeft u een bestand of niet. Een verzoek om net van mijn module IP nummer 192.168.11.44 opgeven niet een bepaald bestand.

Een gedeelte van een typische kop verzoekende index. kan uitzien:

KRIJGEN / HTTP/1.1
Gastheer: 192.168.11.44 verbinding: keep-alive
Accepteren: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
..............etc.

Dit verzoek vraagt om bob.htm:

KRIJGEN /bob.htm HTTP/1.1
Gastheer: 192.168.11.44 verbinding: keep-alive accepteren: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8... enz.

Parsen van het eerste voorbeeld, zou newserver.lua niet vinden van een bepaald bestand te openen. Omdat ik wil index.htm als het bestand van de landing, als tgtfile nihil terugkeert, vervang ik index.htm. Lijn 6.

Parseren van de koptekst voor tweede verzoek zal vaststellen dat het verzoek is het opgeven van een bestand, in dit geval 'bob.htm'. Dus, is de bob.htm geopend en één regel tegelijk met de code van de klant: send(file.read()) verzonden.

Het is belangrijk om niet file.read() bestanden die niet bestaan.
Hierdoor wordt de module paniek en opnieuw starten.

Dus, voordat lezen ik testen om te zien of het bestand met file.open(), lijn 7 en 8 bestaat.

Als nog geen bestand, stuurt newserver.lua gewoon terug 'bestand niet gevonden', en een link terug naar de landing page.

Dit gebeurt wanneer ik klik op Jill of Barb totdat ik htm-bestanden voor hen uploaden.

------------------------------------------------------

  1. --newserver.lua
  2. SRV=net.createServer (net. TCP)
  3. SRV:Listen(80,function(Conn)
  4. Conn: on("receive", function(client,payload)
  5. tgtfile = string.sub (payload,string.find (nettolading, "GET /") +5,string.find(payload,"HTTP/") -2)
  6. Als tgtfile == "" dan tgtfile = 'index.htm' einde
  7. lokale f = file.open(tgtfile,"r")
  8. Als f ~ = nihil dan
  9. klant: send(file.read())
  10. File.Close()
  11. anders
  12. klant: send("<html>")
  13. klant: send(tgtfile.."not Found-404 error.")
  14. klant: send("<a href='index.htm'>Home</a>")
  15. einde
  16. client: close()
  17. collectgarbage()
  18. f = nil
  19. tgtfile = nil
  20. einde)
  21. einde)

_____________________________________

Gerelateerde Artikelen

ESP8266 ADC - meerdere analoge sensoren

ESP8266 ADC - meerdere analoge sensoren

Hoewel de ESP8266-07 en -12 hebben alleen een ADC-pin, het betekent niet dat u beperkt tot slechts één analoge sensor per module. U kunt veel!U moet echter om meerdere sensoren gebruiken 'multiplex' de sensoren. Multiplexing simpelweg betekent dat u
ESP8266 WebServer Scada SVG valor Random con Bateria 6v

ESP8266 WebServer Scada SVG valor Random con Bateria 6v

Se ha algorithms un servidor web con el ESP8266 een permitteert que este tiene un mini scada basado nl additional Vectoriales Redimensionables o SVG, se ha tomado una plantilla de servidor web y se ha creado internamente un SVG al cual se le han modi
Hoe kan ik een grote Poster op meerdere pagina's afdrukken?

Hoe kan ik een grote Poster op meerdere pagina's afdrukken?

Ik ben een grote fan van de televisieserie "Breaking Bad".Dus heb ik besloten om af te drukken een grote poster met de belangrijkste personages van de reeks Walter White en Jesse Pinkman.Het eerste probleem dat ik geconfronteerd met was welke af
Midiendo temperatura con ESP8266 y DHT11

Midiendo temperatura con ESP8266 y DHT11

Hola amigos hoy les voy een mostrar como contact el sensor DHT11 o DHT22 al modulo ESP8266 y mostrar la temperatura y humedad nl una pagina web de una forma muy sencilla y con ayuda del IDE de Arduino programaremos el modulo wifi.Comencemos!Stap 1: m
How to Grant Admin Privileges aan een aangepaste Facebook-pagina

How to Grant Admin Privileges aan een aangepaste Facebook-pagina

Dit werd gemaakt voor een specifieke collega. Toen ik dacht dat anderen kunnen profiteren dat.Als uw aangepaste Facebook-pagina heeft behoefte aan regelmatige updates en beheer, zal toekenning van bevoegdheden aan anderen helpen u delen van de lasten
ESP8266 Van overal

ESP8266 Van overal

In dit Instructable zal ik uitleggen hoe je kunt om toegang tot uw ESP8266 (modus van de SERVER van het WEB) van overal in de wereld.Stap 1: probleemNormaal gesproken, wanneer u de ESP8266 als webserver gebruikt, tests zijn gedaan met behulp van het
DIY Apple Watch VLC-controller met ESP8266, Arduino

DIY Apple Watch VLC-controller met ESP8266, Arduino

Haar een zelfgemaakte project om mijn eigen media controller app te maken.Mijn laptop aangesloten op tv, en im te lui, dus markeerde een VLC control app.Ja im weet het, er is een officiële VLC app in de store, betere functie, maar dit is mijn :)En im
Light Plotter with Intel Edison

Light Plotter with Intel Edison

IntroductieIk was blij te worden geselecteerd als een onderdeel van de Intel Edison IoT invitational hier op Instructables (Overweeg stemmen als u bevalt!). Het project voorgesteld was een geautomatiseerde "lichte kunstschilder" die stappenmotor
DIY T-shirt scherm afdrukken

DIY T-shirt scherm afdrukken

Dit project kwam tot stand omdat mij wilden voor wekken sommige t-shirts om te kunnen dragen en mijn afkomstig op Maker Faire Atlanta vertegenwoordigen. Ik wilde niet betalen van de opgeblazen prijzen online voor slechts een paar shirts, dus ik dat i
Optimaliseren van tekeningen voor FlowJet - ik maakte het op TechShop!

Optimaliseren van tekeningen voor FlowJet - ik maakte het op TechShop!

Een van de meest krachtige tools op TechShop is de WaterJet cutter. Voor degenen die niet vertrouwd met deze tool, werkt het door het schieten van een straal water door middel van een zeer kleine opening op ongeveer 50.000 pond druk. Toegevoegd aan d
Homebrew digitale effect pedaal

Homebrew digitale effect pedaal

Hallo, mijn naam is Colin. Ik ben een fervent gitarist, en ik ben altijd op zoek naar coole nieuwe geluiden. Ik ben een grote fan van de gitarist Paul Gilbert, en hoorde ik hem spelen dit gek effect in een van zijn liedjes, dus ik dat ik zou proberen
Afdrukken van waterdichte Plastic kaarten

Afdrukken van waterdichte Plastic kaarten

maken van uw eigen waterdichte kaarten door afdrukken rechtstreeks op Plastic Film... vuilnis zak film. Dit is niet gewoon lamineren papieren kaarten en plattegronden.Het eindresultaat van dit eenvoudige project is een 100% plastic kaart die is dunne
Galileo's fiets bouwen

Galileo's fiets bouwen

van Galileo fiets is een kinetische sculptuur ontworpen door Clayton Boyer. Ik bouwde dit één als huwelijksgeschenk voor mijn beste vriend, over een periode van een paar maanden. Het kan zeker worden afgewerkt in minder tijd dan dat, maar wanneer je
Hangman - 3D en interactieve

Hangman - 3D en interactieve

Een hele nieuwe manier om te spelen klassieke hangman.Daag uw vrienden uit. Kies een woord, een woordgroep of een raadsel. Afspelen op het gloeiende glas-bord en de frustratie op hun gezichten groeien als de beul langzaam snaps samen bekijken.Mijn do