Files
Chat/Техническое задание.md
2025-03-17 14:43:12 +04:00

2.5 KiB
Raw Blame History

NodeJS Мессенджер

Основные требования к логике работы приложения:

  1. Реализовать при помощи любой БД хранение последних 20 сообщений, которые были отправлены пользователями сайта

    Реализовывать регистрацию или какую бы то ни было идентификацию пользователя не надо

  2. Сообщения должны приходить по WebSocket всем активным пользователям сайта в режиме live в виде "дельты"

    Как только произошел POST запрос, это же сообщение рассылается всем активным пользователям

  3. Отправку сообщения отдельным POST запросом

    Других REST запросов быть на сайте не должно

  4. Как только развернулся клиент, он должен установить WebSocket соединение с backend-ом и запросить snapshot всех актуальных сообщений на данный момент и впоследствии их редактировать с каждой новой "дельтой"

Требования к оформлению:

  1. Использовать React + любые другие библиотеки
  2. Дизайн может быть простым и даже минималистичным, но с логичным расположением кнопок и появлением сообщений
  3. Любыми анимациями или улучшенным визуалом можно пренебречь, но будет плюсом, если такое будет реализованно

На что будет обращено внимание:

  • Реализация REST/WS части
  • Отказоустойчивость ws соединения

    То есть сообщения не должны теряться. Не должно быть такого, чтоб была необходимость обновлять сайт, чтоб увидеть новые сообщения

  • Добавление/удаление сообщений на бэке должно быть выполнено за O(1) по времени
  • Вещание должно быть выполнено за O(N) N - кол-во активных слушателей