Auto refreshing asynchronous web server on ESP32

Hi guys, I am making an rpm encoder and having trouble refreshing the web page automatically. I tried using <meta http-equiv="refresh" content="5"> but it does not do anything at all. Here's my code, any help would be greatly appreciated.

#include "WiFi.h"
#include "AsyncTCP.h"
#include "ESPAsyncWebServer.h"

int Sensor = 21; // Declaration of the sensor input pin
unsigned int pulseCount;
bool lastState;
unsigned int lastTime;
float rpm;
String rpm_string;

const char* ssid = "ssidtest";
const char* password = "12345678";
 
AsyncWebServer server(81);
void setup(){
  Serial.begin(115200);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  } 
  Serial.println(WiFi.localIP());
  
  server.on("/machine1", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send(200, "text/plain",rpm_string);
  });

  server.begin();
}
 
void loop()
{
  bool curState = digitalRead(Sensor);
    if (curState != lastState)
    {
        ++pulseCount;
        lastState = curState;
    }
    if ((unsigned long)millis() - lastTime >= 2000)  
    {
         rpm = (pulseCount * (60000.f / ((unsigned long)millis() - lastTime)))/4;
         
         pulseCount = 0;
         lastTime = (unsigned long)millis();         
    }    
    Serial.print("RPM:  ");
    Serial.println(rpm); 
    rpm_string = String(rpm,2) ;
  }

Your code just provides a single number in ASCII decimal format. If you reference that inside a static HTML page the refresh by the meta tag will refresh the HTML (which won't change) but not the referenced value. Do you have Javascript code to show that number? Post your complete code!