thanks for the reply,
insufficient resources (which happens on chrome and mobile) I think I solved it by introducing reception times and improving sending
p5js side:
let interval
let previousMillis
....
function setup() {
...
interval = 5000;
previousMillis = 0;
}
function draw() {
let currentMillis = millis();
.....
if (currentMillis - previousMillis >= interval) {
source = new EventSource('/events');
source.addEventListener('newVal', function(e) {
const obj = JSON.parse(e.data);
arduVal1 = obj.out1.toFixed(2); // toFixed(2) = 2 decimal
arduVal2 = obj.out2;
});
previousMillis = currentMillis;
}
}
arduino side:
unsigned long previousMillis = 0;
const long interval = 5000;
.....
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
events.send(jsonStr.c_str(), "newVal", millis(), 1);
events.send("ping", NULL, millis(), 1);
previousMillis = currentMillis;
}
}