Когда мы общаемся с людьми, по почте или в мессенджерах мы теряем момент живого разговора, так как надо написать сообщение и отправить его. Позже пришли голосовые сообщения, но их надо слушать, что тоже занимает время, да и нравится далеко не всем. Для дружеского или неформально-делового чаттинга реализован чат, где набираемое собеседником сообщение видно в realtime окне.
Приложение будет содержать в себе следующие модули и их составляющие:
- Сервер:
- Основной поток, управляющий пользователями
- Менеджер подключений
- Менеджер приходящих запросов
- Клиент
- Логгер
- Обработчик ошибок
- Менеджер файлов
Каждый клиент будет обрабатываться в отдельном потоке. Подключение реализовано на сокетах.
Совместной задачей будет выступать реализация основного потока программы, в котором будут обрабатываться входящие подключения. Также совместно будут проходить ревью кода, тестирование продукта, его отладка и приведение к финальному виду.
- Реализовать менеджер подключений
- Реализовать менеджер приходящих запросов
- Реализовать realtime запись в консольном окне
- Реализовать обработчик ошибок
- Реализовать логгер
- Реализовать менеджер файлов
- Написать документацию
На выходе должно получится стабильно работающее консольное приложение, поддерживающее наличие нескольких комнат с чатами и разными пользователями. При возникновении ошибки у одного из пользователей не должно падать все приложение, остальные комнаты должны стабильно работать. Ну и чтобы все было стильно 😎