nodejs sse

Step 1: Import required modules

const http = require('http');
const fs = require('fs');

Step 2: Create an HTTP server

const server = http.createServer((req, res) => {
  // Handle incoming requests
});

Step 3: Set up server to respond with SSE headers

server.on('request', (req, res) => {
  res.setHeader('Content-Type', 'text/event-stream');
  res.setHeader('Cache-Control', 'no-cache');
  res.setHeader('Connection', 'keep-alive');
});

Step 4: Send initial SSE message to the client

res.write('data: Initial message\n\n');

Step 5: Set up periodic SSE messages (heartbeat)

const intervalId = setInterval(() => {
  res.write('data: Heartbeat\n\n');
}, 1000);

Step 6: Handle client disconnect

req.on('close', () => {
  clearInterval(intervalId);
});

Step 7: Listen on a port

const PORT = 3000;
server.listen(PORT, () => {
  console.log(`Server running at http://localhost:${PORT}/`);
});