Ответ
WebSocket обеспечивает двустороннюю связь в реальном времени, что критично для чатов, уведомлений или биржевых данных. В отличие от HTTP, где клиент инициирует запросы, WebSocket позволяет серверу отправлять данные без ожидания запроса, уменьшая задержки и нагрузку.
Пример:
const socket = new WebSocket('wss://example.com/api');
socket.onmessage = (event) => {
console.log('Получены данные:', event.data);
};
socket.send(JSON.stringify({ action: 'subscribe', channel: 'updates' }));
Плюсы:
- Меньше оверхеда (нет HTTP-заголовков в каждом сообщении).
- Поддержка push-уведомлений без long-polling.
- Эффективность для частых мелких сообщений.
Минусы:
- Сложнее масштабировать (требует stateful-серверов).
- Нет встроенной поддержки кеширования, как в REST.
- Может быть избыточным для редких запросов.