1. Реализовать сервер, который: · регистрирует пользователя; · передает список on-line пользователей клиенту и поддерживает его в активном состоянии; · фиксирует время передаваемых сообщений, ведет log журнал. · мониторит статус пользователей 2. Реализовать клиент, который: · отправляет запрос об регистрации пользователя на сервер; · получает список on-line пользователей с сервера и обновляет его в реальном времени; · передает и отправляет сообщение другому клиенту 3. Рекомендации по реализации: · Использовать Java Socket для реализации сетевого взаимодействия. · Для хранения данных, в том числе о пользователях и истории сообщений, на сервере использовать любую in memory БД, например H2. · Доступ к БД осуществлять через JDBC (по желанию ORM). · На клиентской части разделить между разными потоками задачи мониторинга входящих сообщений, мониторинга списка online пользователей, отправки сообщений · На серверной части разделить между потоками обработку событий от каждого пользователя (вход/выход/отправка сообщений)