Проверяет понимание выбора транспорта для передачи данных в реальном времени и умение обосновать применение WebSocket вместо polling или SSE.
Когда на странице нужно отображать график, который обновляется в реальном времени, ключевой вопрос — как доставлять данные от сервера к клиенту. От этого зависят задержка, нагрузка на сервер и сложность кода. Рассмотрим основные варианты и их применимость.
График с онлайн-данными требует частых обновлений с малой задержкой. WebSocket устанавливает соединение один раз и затем передаёт только полезную нагрузку, без HTTP-заголовков на каждое сообщение. Это снижает трафик и нагрузку на сервер, а задержка становится сравнимой с сетевой. Дополнительно клиент может отправлять команды (например, смену таймфрейма) по тому же каналу.
const ws = new WebSocket('wss://api.example.com/live');
ws.onopen = () => ws.send(JSON.stringify({ subscribe: 'BTC-USD' }));
ws.onmessage = (event) => {
const point = JSON.parse(event.data);
chart.appendData(point); // добавляем точку на график
};
ws.onclose = () => setTimeout(connect, 1000); // переподключение
Итог: для живого графика с частыми обновлениями WebSocket — оптимальный выбор благодаря низкой задержке, малому overhead и двусторонней связи. Альтернативы стоит рассматривать только при редких обновлениях или инфраструктурных ограничениях.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию