import type { Server, Socket } from 'socket.io'; export function setupSocketHandlers(io: Server): void { io.on('connection', (socket: Socket) => { console.log(`[Socket] Connected: ${socket.id}`); // 특정 업무 상세 방에 참여 (우측 모니터 패널용) socket.on('join:task', (taskId: string) => { socket.join(`task:${taskId}`); }); socket.on('leave:task', (taskId: string) => { socket.leave(`task:${taskId}`); }); socket.on('disconnect', () => { console.log(`[Socket] Disconnected: ${socket.id}`); }); }); } // 업무 변경 시 해당 방에 브로드캐스트 (라우터에서 호출) export function emitTaskUpdated(io: Server, taskId: string, data: unknown): void { io.to(`task:${taskId}`).emit('task:updated', data); } export function emitTaskListRefresh(io: Server): void { io.emit('tasks:refresh'); }