Initial commit - EENE Dashboard
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
29
backend/src/socket.ts
Normal file
29
backend/src/socket.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
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');
|
||||
}
|
||||
Reference in New Issue
Block a user