feat: 上传资源和下载资源更新
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { router, error, checkAuth, clients, getTaskId } from './router.ts';
|
||||
import { router, error, checkAuth, clients, getTaskId, writeEvents, deleteOldClients } from './router.ts';
|
||||
|
||||
router.get('/api/events', async (req, res) => {
|
||||
res.writeHead(200, {
|
||||
@@ -6,17 +6,44 @@ router.get('/api/events', async (req, res) => {
|
||||
'Cache-Control': 'no-cache',
|
||||
Connection: 'keep-alive',
|
||||
});
|
||||
const tokenUser = await checkAuth(req, res);
|
||||
if (!tokenUser) return;
|
||||
const taskId = getTaskId(req);
|
||||
if (!taskId) {
|
||||
res.end(error('task-id is required'));
|
||||
return;
|
||||
}
|
||||
// 将客户端连接推送到 clients 数组
|
||||
clients.set(taskId, { client: res, tokenUser });
|
||||
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');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user