let newcode = false; //helferfunktion die das richtige format für das event erstellt function sendMessage(response, eventname, datacontent) { //response.write ist ein append, also schreibt was ans ende der seite response.write('event: ' + eventname + '\n' + 'data: ' + JSON.stringify(datacontent) + '\n\n') newcode = false; } function send_sse_update() { newcode = true; } async function sse(request, response) { //header so setzen response.set({ 'Cache-Control': 'no-cache', 'Content-Type': 'text/event-stream', 'Connection': 'keep-alive' }) response.flushHeaders(); //loop, schickt ein event, wartet 5 sekunden, schickt dann erneut. // so abändern, dass anderer code in den loop hineingreifen kann (variable bool "newcode" oder so) //dann wenn newcode = true, schicke ein eben via sendlive) //der loop muss glaube ich bestehen bleiben while (true){ if (newcode) { console.log("update send") sendMessage(response, 'update', {}) } else { sendMessage(response,'hello', {}) } // response.write() await new Promise(resolve => setTimeout(resolve, 5000)) console.log(newcode) } } module.exports = { sse, send_sse_update }