Веб-разработка. Разработка с нуля. Реализовать многопоточный HTTP клиент + websocket сервер. =========== Алгоритм: --------- На сервере хранится список ключевых слов, которым соответствует несколько URL. Клиент посылает ключевое слово на сервер. Сервер передаёт клиенту список URL. Клиент выбирает один URL из списка и через сервер в многопоточном режиме скачивает контент. Клиент сохраняет контент в LocalStorage с возможностью чтения оффлайн. Сервер должен: -------------- Хранить соответствие ключевых слов с URLами. При скачивании контента передавать статус загрузки: размер, кол-во запущенных потоков, прогресс загрузки. Кол-во потоков и скорость на поток должно быть ограничено посредством конфига. Клиент должен: -------------- Иметь поле для ввода ключевого слова. Иметь возможность показа списка URL с возможностью выбора пользователем нужного. Показывать статус загрузки: размер, кол-во запущенных потоков, прогресс загрузки. Иметь возможность показа списка загруженного контента с возможностью выбора пользователем нужного. Показать выбранный загруженный контент. Не забудьте отследить все возможные ошибки, обработав их и представив пользователю в удобном виде. Требования: ----------- JavaScript/Node.js Можно использовать клиентский и серверный фреймворк по своему выбору. Код задания предоставить в виде репозитория на github\gitlab\bitbucket В README.md должна содержаться инструкция по запуску Результат должен быть доступен публично (чтобы не обязательно было разворачивать локально). =======.