import { router, error, checkAuth, clients, getTaskId, writeEvents, deleteOldClients } from './router.ts'; router.get('/api/events', async (req, res) => { res.writeHead(200, { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', Connection: 'keep-alive', }); const taskId = getTaskId(req); if (!taskId) { res.end(error('task-id is required')); return; } // 将客户端连接推送到 clients 数组 clients.set(taskId, { client: res, createTime: Date.now() }); // 移除客户端连接 req.on('close', () => { clients.delete(taskId); }); }); router.get('/api/s1/events', async (req, res) => { res.writeHead(200, { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', Connection: 'keep-alive', }); const taskId = getTaskId(req); if (!taskId) { res.end(error('task-id is required')); return; } // 将客户端连接推送到 clients 数组 clients.set(taskId, { client: res, createTime: Date.now() }); writeEvents(req, { progress: 0, message: 'start' }); // 不自动关闭连接 // res.end('ok'); }); router.get('/api/s1/events/close', async (req, res) => { const taskId = getTaskId(req); if (!taskId) { res.end(error('task-id is required')); return; } deleteOldClients(); clients.delete(taskId); res.end('ok'); });