mirror of
https://github.com/StepanovPlaton/Chat.git
synced 2026-04-03 20:30:40 +04:00
2.5 KiB
2.5 KiB
NodeJS Мессенджер
Основные требования к логике работы приложения:
- Реализовать при помощи любой БД хранение последних 20 сообщений, которые были отправлены пользователями сайта
Реализовывать регистрацию или какую бы то ни было идентификацию пользователя не надо
- Сообщения должны приходить по WebSocket всем активным пользователям сайта в режиме live в виде "дельты"
Как только произошел POST запрос, это же сообщение рассылается всем активным пользователям
- Отправку сообщения отдельным POST запросом
Других REST запросов быть на сайте не должно
- Как только развернулся клиент, он должен установить WebSocket соединение с backend-ом и запросить snapshot всех актуальных сообщений на данный момент и впоследствии их редактировать с каждой новой "дельтой"
Требования к оформлению:
- Использовать React + любые другие библиотеки
- Дизайн может быть простым и даже минималистичным, но с логичным расположением кнопок и появлением сообщений
- Любыми анимациями или улучшенным визуалом можно пренебречь, но будет плюсом, если такое будет реализованно
На что будет обращено внимание:
- Реализация REST/WS части
- Отказоустойчивость ws соединения
То есть сообщения не должны теряться. Не должно быть такого, чтоб была необходимость обновлять сайт, чтоб увидеть новые сообщения
- Добавление/удаление сообщений на бэке должно быть выполнено за O(1) по времени
- Вещание должно быть выполнено за O(N) N - кол-во активных слушателей