Вопрос проверяет знание технологий для работы с данными в реальном времени, таких как WebSocket, Server-Sent Events (SSE) и Long Polling.
Для получения данных в реальном времени используют:
WebSocket – двустороннее соединение между клиентом и сервером.
Server-Sent Events (SSE) – поток односторонних сообщений от сервера.
Long Polling – запросы с долгим ожиданием ответа.
Протокол ws:// или wss:// (безопасный), поддерживающий двустороннюю связь.
Пример:
const socket = new WebSocket('wss://example.com/ws');
socket.onopen = () => console.log('Соединение установлено');
socket.onmessage = (event) => console.log('Получено:', event.data);
socket.onclose = () => console.log('Соединение закрыто');
// Отправка данных
socket.send('Привет, сервер!'); Плюсы:
Мгновенная передача данных.
Поддержка бинарных данных.
Минусы:
Сложнее в настройке сервера.
Односторонний поток данных от сервера (например, для уведомлений).
Клиентский код:
const eventSource = new EventSource('/updates');
eventSource.onmessage = (event) => {
console.log('Новое сообщение:', event.data);
}; Сервер (Node.js + Express):
app.get('/updates', (req, res) => {
res.setHeader('Content-Type', 'text/event-stream');
setInterval(() => {
res.write(`data: ${new Date().toISOString()}\n\n`);
}, 1000);
}); Плюсы:
Простота реализации.
Автоматическое переподключение.
Минусы:
Только сервер → клиент.
Клиент отправляет запрос, а сервер отвечает только когда есть данные.
Пример:
function fetchUpdates() {
fetch('/poll')
.then(response => response.json())
.then(data => {
console.log('Данные:', data);
fetchUpdates(); // Новый запрос
});
} Плюсы:
Работает даже без WebSocket.
Минусы:
Высокая нагрузка на сервер.
Уровень
Рейтинг:
5
Сложность:
7
Навыки
JavaScript
Networks
Ключевые слова
Подпишись на React Developer в телеграм