Адам Арутюнов

Chatile

Ещё не существует ни одного консольного чата, развитого так же, как любой мессенджер с графическим интерфейсом. Такое приложение было бы удобно использовать администраторам по локальной сети, чтобы не пользоваться устаревшими почтовыми утилитами.

Встречайте, Chatile!

Чатиль имеет клиент-серверную архитектуру с базой данных и работает на чистых сокетах. Чтобы стандартизировать структуру пакетов, мы разработали Mail Transfer Protocol специально для проекта. Вот как выглядят его основные сообщения:

Чё-то сложно, давайте дальше
{
  'header': 'register',
  'body': {
    'name': <str>,
    'login': <str>,
    'password': <str>
  }
}
РегистрацияЛогинОтправка сообщенияУспешная авторизацияДоставка сообщенияИстория сообщенийОшибкаОК

Низкий уровень передачи пакетов снижает требования к сети, а отсутствие графического интерфейса — к железу сервера.

База данных нужна, для того чтобы можно было как вести переписку в реальном времени, так и накапливать сообщения от отправителя. Когда получатель появится в сети, он увидит все сообщения, сохранённые в базе. Большинство существующих чатов умеют соединять клиенты друг с другом только одновременно.

Чтобы начать общение, нужно зарегистрироваться. После этого можно связаться с любым другим пользователем по уникальному логину.

Войти в систему по логину и паролю можно всего один раз, и после этого клиент получает токен на час, который позволяет совершать любые действия без повторной аутентификации.

Меню защищает пользователя от неправильных действий.

Кейс многопользовательского чата разработан компанией СберТех для хакатона DevHack 2020 в Ростове-на-Дону. Чатиль стал лучшим решением этой задачи.

Сейчас разрабатывается новый клиент на Go и расширяется функциональность: поддержка статуса онлайна, списка контактов и многопользовательских чатов.

Сервер — я, клиент — Степан, протокол — Глеб.

Чтобы читать мысли,
подпишитесь на канал

Нет, я не псих
Дальше:
District 61