Проверяет понимание технологии Server-Sent Events для однонаправленной передачи данных от сервера к клиенту по HTTP.
Server-Sent Events (SSE) — это стандарт, который позволяет веб-серверу отправлять данные клиенту в реальном времени через обычное HTTP-соединение. В отличие от WebSocket, SSE работает только в одну сторону: от сервера к клиенту. Это упрощает реализацию и автоматически использует протокол HTTP, что облегчает работу с прокси и балансировщиками.
Клиент создаёт объект EventSource с URL эндпоинта. Сервер отвечает с заголовком Content-Type: text/event-stream и держит соединение открытым. Сообщения отправляются в виде текстовых блоков, разделённых пустыми строками. Каждое сообщение может содержать поля data, event, id и retry.
const source = new EventSource('/events');
source.onmessage = (event) => {
console.log('Новое сообщение:', event.data);
};
source.addEventListener('custom-event', (event) => {
console.log('Событие:', event.data);
});const http = require('http');
http.createServer((req, res) => {
if (req.url === '/events') {
res.writeHead(200, {
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive'
});
setInterval(() => {
res.write('data: ' + new Date().toISOString() + '\n\n');
}, 1000);
}
}).listen(3000);SSE автоматически обрабатывает переподключение: если соединение разрывается, браузер пытается восстановить его, используя последний полученный id для возобновления потока. Это делает SSE надёжным для длительных соединений.
Вывод: SSE — отличный выбор для однонаправленных потоков данных, когда не нужна двусторонняя связь. Он проще WebSocket, работает поверх HTTP и автоматически восстанавливает соединение, что снижает нагрузку на разработку.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию