2024-06-06 16:38:41 +02:00

43 lines
1.3 KiB
JavaScript

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 }