jibrel
HowTo
- Install server and client modules
npm i
- Use
npm start
on server and client - To enable server logs - use
export DEBUG="*:log,*:err"
- To enable logs in browser - execute
window.localStorage.debug = '*:log,*:error,*:warn'
in console
Задача
часть 1
- необходимо сделать node.js сервер
- у сервера есть REST эндпоинт, который:
- получает POST запросы с произвольным JSON и возвращает ID запроса
- отправляет запрос на "обработку" которая длится рандомное количество времени
- по GET принимает ID запроса и отдает статус обработки true/false
- также у сервера есть эндпоинт с вебсокетом работающий похожим образом:
- получает сообщение
- отправляет на обработку. Тут уже другая очередь и другой алгоритм, но время обработки все равно не детерменировано.
- через рандомный интервал времени возвращает статус обработки
- но у сервера есть баг - каждое сообщение с некоторой вероятностью теряется в процессе обработки. Очереди как никак...
часть 2
- необходимо сделать react.js - redux - saga приложение
- пользователь может включить/выключить свое frontend приложение
- во включенном состоянии приложение непрерывно создает сообщения и отправялет их на сервер
- запрашивает/получает статусы обработки созданных сообщений
- в выключенном состоянии все коннекты к серверу обрываются
- сообщения генерятся и отправляются непрерывным потоком - отправляя новое сообщение не ждем обработки предыдущего запроса
- пользователю отображается страница со списком запросов, их статусом, содержанием сообщений и т.д.
- требований к внешнему виду интерфейса нет