mirror of
https://github.com/StepanovPlaton/Chat.git
synced 2026-04-03 12:20:40 +04:00
23 lines
2.5 KiB
Markdown
23 lines
2.5 KiB
Markdown
# 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 - кол-во активных слушателей |