"use client"; import { io, Socket } from "socket.io-client"; let socket: Socket | null = null; export function getSocket(): Socket { if (typeof window === "undefined") { // SSR - return a fake unconnected socket placeholder; never used. return {} as Socket; } if (!socket) { socket = io({ path: "/socket.io", transports: ["websocket", "polling"], autoConnect: true, }); } return socket; } export function disconnectSocket() { if (socket) { socket.disconnect(); socket = null; } }