Назад к вопросам
Junior — Middle
124
Можете объяснить принцип работы протокола WebSocket и чем он отличается от обычных HTTP-запросов?
Компании, где спрашивали
Бизнес-Азимут
Ответ от нейросети
sobes.tech AI
Протокол WebSocket обеспечивает двунаправленное (full-duplex) постоянное соединение между клиентом и сервером поверх одного TCP-соединения. Это позволяет обмениваться данными в реальном времени без необходимости повторных HTTP-запросов.
Как работает WebSocket:
- Клиент инициирует соединение с сервером через HTTP-запрос с заголовком
Upgrade: websocket. - Если сервер поддерживает WebSocket, он отвечает подтверждением и устанавливает постоянное соединение.
- После установки соединения клиент и сервер могут свободно обмениваться сообщениями в обе стороны без дополнительного HTTP-запроса.
Отличия от обычных HTTP-запросов:
- HTTP — это протокол запрос-ответ: клиент отправляет запрос, сервер отвечает, соединение обычно закрывается.
- WebSocket — постоянное соединение, позволяющее серверу отправлять данные клиенту в любой момент (push-сообщения).
- WebSocket эффективнее для приложений с частым обменом данными, например, чаты, игры, финансовые терминалы.
Пример на Node.js с использованием библиотеки ws:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', ws => {
ws.on('message', message => {
console.log(`Получено сообщение: ${message}`);
ws.send(`Ответ: ${message}`);
});
});
Таким образом, WebSocket позволяет создавать интерактивные приложения с низкой задержкой и постоянным обменом данными.