Go Down

Topic: nodeMCU Servidor Web info (Read 53 times) previous topic - next topic

queenbey

Hola!
Tengo una duda al respecto, he consultado varias páginas y se puede programar una página web de estas dos maneras:

Code: [Select]

// Devuelvo la respuesta al cliente -> Todo ha ido bien, el mensaje ha sido interpretado correctamente
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
 
  // A partir de aquí creo la página en raw HTML
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
 
  client.print("El LED está:  ");
 
  if(value == HIGH) {
    client.print("ON");
  } else {
    client.print("OFF");
  }
  client.println("<br><br>");
  client.println("<a href=\"/LED=ON\"\"><button>Encender </button></a>"); // Los botones con enlace
  client.println("<a href=\"/LED=OFF\"\"><button>Apagar </button></a><br />"); 
  client.println("</html>");






Code: [Select]


void loop(void){
  server.handleClient();                    // Listen for HTTP requests from clients
}

void handleRoot() {                         // When URI / is requested, send a web page with a button to toggle the LED
  server.send(200, "text/html", "<form action=\"/LED\" method=\"POST\"><input type=\"submit\" value=\"Toggle LED\"></form>");
}

void handleLED() {                          // If a POST request is made to URI /LED
  digitalWrite(led,!digitalRead(led));      // Change the state of the LED
  server.sendHeader("Location","/");        // Add a header to respond with a new location for the browser to go to the home page again
  server.send(303);                         // Send it back to the browser with an HTTP status 303 (See Other) to redirect
}

void handleNotFound(){
  server.send(404, "text/plain", "404: Not found"); // Send HTTP status 404 (Not Found) when there's no handler for the URI in the request
}



He visto que la primera de ellas es más común, me gustaría saber cuál es la diferencia de usar la clase cliente o la clase servidor para poder hacer la misma página web por ejemplo. Mi duda es más conceptual..

Gracias de antemano!!!

Lucario448

La primera es un "socket de red" simple; y eso significa que las cabeceras HTTP (petición y respuesta) deben ser manejadas manualmente.

La segunda hace lo anterior, simplificando la programación a funciones "callback" (eventuales) que manejan todos los casos posibles de petición (o al menos los programados). E incluso simplifica la creación de una respuesta, como si se tratara de un "objeto".

queenbey

Vale ya me voy aclarando mejor ! muchas gracias.

Go Up