ESP32 Datenübergabe mit Websockets

Hallo zusammen.
Ich habe dieses Projekt gefunden und auf einen ESP32 geladen.
Es funktioniert auch wie beschrieben.
Jetzt würde ich gern Schaltzustände und Sensordaten mit Websockets an den Webbrowser schicken, um den ESP nicht ständig mit AJAX Calls (derzeitiger Zustand eines anderen Projektes) zu quälen.
Dazu habe ich das Beispiel geändert.

unsigned long switchInterval    = 10000;
unsigned long lastInterval        = 0;
uint8_t cn = 0;

// Callback: receiving any WebSocket message
void onWebSocketEvent(uint8_t client_num, WStype_t type, uint8_t* payload, size_t length) {
  
  cn = client_num;
  .
  .
  .
}

void loop() {
  // Look for and handle WebSocket data
  webSocket.loop();
  
  if ((millis() - lastInterval) > switchInterval) {
    // Toggle LED
    led_state = led_state ? 0 : 1;
    Serial.printf("Toggling LED to %u\n", led_state);
    digitalWrite(led_pin, led_state);
    // Report the state of the LED
    sprintf(msg_buf, "%d", led_state);
    Serial.printf("Sending to [%u]: %s\n", cn, msg_buf);
    webSocket.sendTXT(cn, msg_buf);
    lastInterval = millis();
  }
}

Die Daten kommen beim Client an und die Webseite verarbeitet wunschgemäß die Daten.

Wie identifiziere ich den jeweiligen Client professionell und speichere ggf mehrere Connections als Variablen im Programm auf dem ESP?

Gruß
Fred

Ich empfehle anstelle der Websockets als Ablösung für AJAX eher die Fetch-API. Websockets sind hauptsächlich dann sinnvoll, wenn der Server Informationen zum Client pushen muss.

Gruß Tommy

Websockets sind hauptsächlich dann sinnvoll, wenn der Server Informationen zum Client pushen muss.

Genau das will ich ja machen.
Momentan fragt der Browser beim Server alle 5 Sekunden die Daten über AJAX ab.
Der Server soll aber in Zukunft immer nur dann Daten an den Browser senden, wenn sich Werte geändert haben.

Ok, sorry, das hatte ich nicht erkannt, da Du von AJAX ausgegangen bist.
Zum ESP32 kann ich nichts sagen.

Gruß Tommy