const http = require("http");
const { EventEmitter } = require("events");
const eventEmitter = new EventEmitter();
const clients = {};
function sseHandler(req, res) {
const clientId = generateClientId();
res.writeHead(200, {
"Content-Type": "text/event-stream",
"Cache-Control": "no-cache",
Connection: "keep-alive",
});
clients[clientId] = res;
req.on("close", () => {
delete clients[clientId];
});
}
const server = http.createServer((req, res) => {
if (req.url === "/sse") {
sseHandler(req, res);
} else {
res.writeHead(404);
res.end();
}
});
server.listen(3000, () => {
console.log("Server is running on port 3000");
});
function sendSSEMessage(clientId, data) {
const client = clients[clientId];
if (client) {
client.write(`data: ${data}\n\n`);
}
}
const clientId = "unique-client-id";
const message = "Hello, SSE client!";
sendSSEMessage(clientId, message);
function generateClientId() {
return Math.random().toString(36).substring(2, 10);
}