Sobes.tech
Back to questions
Junior — Middle
123

Можете объяснить принцип работы протокола WebSocket и чем он отличается от обычных HTTP-запросов?

Companies where asked
Бизнес-Азимут

Answer from AI

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 позволяет создавать интерактивные приложения с низкой задержкой и постоянным обменом данными.