Пользователь может загружать данные через конечную точку my / upload HTTP (я кодирую ее с помощью NodeJS / Express). Мне нужно обновить веб-страницу (ReactJS) в режиме реального времени, чтобы показать время последней загрузки. Я попытался использовать SSE для этого и столкнулся с проблемой.
Это рабочий код, который загружает данные на сервер:
const upload = async (req, res) => {
try {
// upload logic is here ..
return res
.status(200)
.send('Success!');
} catch (e) {
return res.status(500).send(e.message);
}
};
Чтобы обновить веб-страницу в режиме реального времени с отметкой времени последней загрузкиЯ пытался внедрить следующую функцию SSE в функцию upload () выше внутри блока try {} непосредственно перед оператором return:
function sendSSE(response) {
response.writeHead(200, {
Connection: 'keep-alive',
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
'Access-Control-Allow-Origin': '*',
});
const content = JSON.stringify(Date.now());
response.write(content);
response.write('\n\n');
}
Я получил ошибку:
Ошибка [ERR_HTTP_HEADERS_SENT]: Невозможно установить заголовки после их отправки клиенту