This commit is contained in:
seb
2026-10-16 01:17:28 +02:00
parent 0039b80d31
commit 9a4e2e30df

View File

@@ -560,8 +560,28 @@ export function register(app, basePath = '') {
res.flushHeaders(); res.flushHeaders();
} }
req.on('close', () => {
console.warn(`[Company Import SSE] Client request closed (writableEnded: ${res.writableEnded}, destroyed: ${res.destroyed})`);
});
res.on('close', () => {
if (!res.writableEnded) {
console.warn(`[Company Import SSE] Response stream closed (destroyed: ${res.destroyed})`);
}
});
const sseWrite = (event, data) => { const sseWrite = (event, data) => {
if (res.writableEnded || res.destroyed) return; if (res.writableEnded || res.destroyed) {
console.warn(`[Company Import SSE DROP] event="${event}" dropped: connection closed (destroyed: ${res.destroyed}, ended: ${res.writableEnded})`);
return;
}
if (event === 'progress') {
console.log(`[Company Import SSE] progress cat=${data.categoriesdone}/${data.categoriestotal} art=${data.articlesdone}/${data.articlestotal} img=${data.imagesdone}/${data.imagestotal} rec=${data.receiptsdone}/${data.receiptstotal}`);
} else if (event === 'images') {
console.log(`[Company Import SSE] images batch count=${Array.isArray(data) ? data.length : 1}`);
} else {
console.log(`[Company Import SSE] event="${event}"`, data);
}
res.write(`event: ${event}\ndata: ${JSON.stringify(data)}\n\n`); res.write(`event: ${event}\ndata: ${JSON.stringify(data)}\n\n`);
if (typeof res.flush === 'function') res.flush(); if (typeof res.flush === 'function') res.flush();
}; };