feat(ddma-eligibility) - v1

This commit is contained in:
2025-11-25 19:23:24 +05:30
parent 394dbc359b
commit 4ceffdd073
14 changed files with 1881 additions and 14 deletions

View File

@@ -0,0 +1,53 @@
import { Server as HttpServer } from "http";
import { Server, Socket } from "socket.io";
let io: Server | null = null;
export function initSocket(server: HttpServer) {
const NODE_ENV = (
process.env.NODE_ENV ||
process.env.ENV ||
"development"
).toLowerCase();
const rawFrontendUrls =
process.env.FRONTEND_URLS || process.env.FRONTEND_URL || "";
const FRONTEND_URLS = rawFrontendUrls
.split(",")
.map((s) => s.trim())
.filter(Boolean);
// In dev: allow all origins
// In prod: restrict to FRONTEND_URLS if provided
const corsOrigin =
NODE_ENV !== "production"
? true
: FRONTEND_URLS.length > 0
? FRONTEND_URLS
: false; // no origins allowed if none configured in prod
io = new Server(server, {
cors: {
origin: corsOrigin,
methods: ["GET", "POST"],
credentials: true,
},
});
io.on("connection", (socket: Socket) => {
console.log("🔌 Socket connected:", socket.id);
socket.on("disconnect", () => {
console.log("🔌 Socket disconnected:", socket.id);
});
});
// Optional: log low-level engine errors for debugging
io.engine.on("connection_error", (err) => {
console.error("Socket engine connection_error:", err);
});
return io;
}
export { io };