Данный проект представляет из себя онлайн чат. Весь проект написан на языке программирования Python без использования сторонних фреймворков и библиотек. Функционал проекта реализован веб-сокетах, через библиотеку asyncio. Все данные хранятся в оперативной памяти, поэтому при перезапуске сервера все данные будут потеряны.
- Необходимо установить Python версии 3.10 и выше
- Установить зависимости из файла requirements.txt командой:
pip install -r requirements.txt
- Описать .env файл в корневой директории проекта. Пример можно посмотреть в файле .env.example
- Находясь в корневой директории проекта запустить сервер командой:
python example_server.py
- После запуска сервера можно установить соединение с ним с помощью клиента. Для этого необходимо запустить:
python exemple_client.py
Все команды вводятся в поле ввода сообщения. Командой серверу является первое слово в сообщении. Все команды вводятся без кавычек. Все команды вводятся на английском языке. В случае неверного ввода команды, сервер выдаст сообщение об ошибке.
- help - выводит список всех доступных команд.
- rename {new_name: str} - изменяет имя пользователя на {new_name}. Имя пользователя не может содержать пробелы или быть уже занятым.
- exit - выход из чата. Разрывает соединение с сервером.
- users - выводит список всех пользователей, которые находятся в чате.
- send {message: str} - отправляет сообщение всем пользователям в чате. У данной команды
существуют опциональные параметры:
- -u --username {username: str} - отправляет сообщение только указанному пользователю.
- -t --time {time: int} - отправляет сообщение через указанное количество секунд.
- cancel - отменяет последнее запланированное сообщение.
- history - выводит историю последних 20 сообщений в чате.
- report {username: str} - позволяет отправить жалобу на пользователя. Если пользователь наберёт более 2 жалоб, то он лишиться возможности отправлять сообщения в чат на 10 минут.