Server-Sent Event
Introduction

Implementation
Backend
Frontend
Reference
Last updated

Last updated
app.get('/', (req, res) => {
// Content Type must defined as text/event-stream
res.setHeader('Content-Type', 'text/event-stream');
let counter = 0;
const intervalId = setInterval(() => {
counter++;
// Write the event stream format
// the text must follow the below, including numbers of \n
res.write(`event:message\n data: Message ${counter}\n\n`);
}, 2000);
// When client closes connection, stop sending events
req.on('close', () => {
clearInterval(intervalId);
res.end();
});
});// declare the server source
const evtSource = new EventSource({apiUrl}, {
withCredentials: true,
});
// listen to the server message
evtSource.onmessage = (event) => {
const newElement = document.createElement("li");
const eventList = document.getElementById("list");
newElement.textContent = `message: ${event.data}`;
eventList.appendChild(newElement);
};