Есть ли опыт работы с WebSocket

«Есть ли опыт работы с WebSocket» — вопрос из категории Асинхронность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, есть опыт работы с WebSocket. Использовал его для создания чатов, уведомлений в реальном времени и онлайн-игр.

Пример подключения:

const socket = new WebSocket('wss://example.com/socket');

socket.onopen = () => {
  console.log('Соединение установлено');
  socket.send(JSON.stringify({ type: 'auth', token: '123' }));
};

socket.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log('Получено сообщение:', data);
};

socket.onclose = () => {
  console.log('Соединение закрыто');
};

Особенности работы:

  • Поддержка reconnect при разрыве соединения
  • Обработка ошибок через onerror
  • Использование JSON для структурированных данных
  • Оптимизация нагрузки (троттлинг, дебаунсинг сообщений)

Также работал с библиотеками типа Socket.IO для более удобного управления соединением.