Проверяет понимание способов организации двусторонней связи между клиентом и сервером в реальном времени и умение выбирать подходящую технологию под задачу.
Обмен данными в реальном времени нужен там, где клиент должен получать обновления сразу после их появления: чаты, биржевые котировки, онлайн-игры, уведомления, совместное редактирование документов. Классический HTTP-запрос работает по схеме «запрос — ответ», поэтому для постоянного потока данных применяют специальные подходы.
// Клиент
const ws = new WebSocket('wss://example.com/chat');
ws.onopen = () => ws.send('Привет, сервер!');
ws.onmessage = (event) => console.log('Сообщение:', event.data);
// Сервер на Node.js (ws)
const { WebSocketServer } = require('ws');
const wss = new WebSocketServer({ port: 8080 });
wss.on('connection', (socket) => {
socket.on('message', (msg) => {
wss.clients.forEach((c) => c.send(msg)); // broadcast
});
});Если данные идут только от сервера (ленты, уведомления) — достаточно SSE. Если нужна двусторонняя связь с низкой задержкой (чаты, игры) — берут WebSocket. Когда инфраструктура не поддерживает WebSocket или нужна максимальная совместимость — используют long polling. На практике часто комбинируют: WebSocket для основного канала и HTTP для служебных запросов.
Итог: применяйте WebSocket для интерактивных двусторонних сценариев, SSE — для односторонних потоков событий, а polling — как простой fallback, когда другие варианты недоступны.
Уровень
Рейтинг:
5
Сложность:
5
Навыки
Node.js
Networks
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию