What do you think about this code ? The aim is to define my socket and be able to import it where I need, so I can start, stop it, and also get it to define new listeners / emit events from anywhere in my app ?
import { Server as IOServer, Socket } from "socket.io";
import { Server } from "http";
let io: IOServer;
export const startIOServer = (server: Server) => {
io = new IOServer(server);
io.on("connection", (socket: Socket) => {
console.log("Socket.io connected:", socket.id);
// Add your default socket.io event handling logic here
});
return io;
};
export const getIOServer = () => {
if (!io) {
throw new Error("Socket.io has not been initialized");
}
return io;
};
export const closeIOServer = () => {
if (io) {
io.close();
console.log("Socket.io closed.");
}
};
export const socket = {
get: getIOServer,
start: startIOServer,
close: closeIOServer,
};