Вступить в клуб →
средняяjavascriptWebSocket, SSE и real-time

Реестр подписок клиентов на комнаты для рассылки

Напишите createRoomRegistry(), который хранит, какие клиенты в каких комнатах. Верните объект с методами:

  • join(clientId, room) — добавить клиента в комнату (повторное добавление ничего не меняет);
  • leave(clientId, room) — убрать клиента из комнаты;
  • leaveAll(clientId) — убрать клиента из всех комнат (вызывается при отключении);
  • members(room) — массив id клиентов комнаты, отсортированный по возрастанию;
  • roomsOf(clientId) — массив комнат клиента, отсортированный по возрастанию.

Пустые комнаты не должны оставаться в памяти.

заготовка решения

function createRoomRegistry() {
  // ваш код
  return undefined;
}

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела