Проект собран на FastAPI с Веб-сокетами, cделан в качестве тестового задания в 2023
По большому счету, сделано по примеру из официальной документации FastAPI с небольшими переделками.
Одностраничный многопользовательский чат на веб-сокетах. Страница динамическая, обрабатывает все действия без перезагрузки. С помощью формы вы можете отправить сообщение на сервер, где оно будет принято и добавлено время получения этого сообщения. Далее, на сервере формируется JSON и рассылается всем подключенным участникам. Участник, отправивший сообщение, видит вместо никнейма "You". Когда, один из участников покидает чат, все остальные получают уведомление. Логи не сохраняются, пользователи не авторизуются, базы данных не подключаются.
Красоту в CSS навёл Paks.
- Python 3
- FastAPI
- uvicorn
- и их зависимости
- клонировать репозиторий на машину, с которой будет будет запускаться сервис (либо по SSH-ссылке, либо скопировать и распаковать zip-архив)
git clone https://github.com/andmerk93/WebSocket_chat.git
- На машине должен быть установлен Python актуальной версии (тестировалось на 3.8, 3.10)
- развернуть виртуальное окружение python в папке с проектом (WebSocket_chat)
python3 -m venv venv
- активировать виртуальное окружение для linux/unix
source ./venv/bin/activate
- для Windows, должно быть разрешено выполнение скриптов Powershell
venv\Scripts\activate
- с запущенным виртуальным окружением нужно выполнить установку требуемых компонентов
pip install uvicorn[standart] fastapi
- запустить программу
python3 server_chat.py