Skip to content

Latest commit

 

History

History
71 lines (46 loc) · 2.75 KB

README.md

File metadata and controls

71 lines (46 loc) · 2.75 KB

Простой консольный чат на Python и gRPC

Пример простейшего консольного чата на gRPC и Python.

Требования

  • Python 3.7+

Установка зависимостей

pip install -r requirements.txt

Генерация Python модулей по proto файлам

compile_proto.bat

Запуск

Запуск из терминала

Запуск сервера
python -m server
Запуск клиента
python -m client

Запуск из PyCharm

В PyCharm доступны Start Server и Start Client конфгурации запуска (можно запускать множество клиентов параллельно).

Примечания

Генерация Python модулей по proto файлам

Для компиляции Proto файлов в Python модули используется модуль grpc_tools.protoc.

Но для компиляции файлов требуется использовать скрипт compile_proto.bat. В целом он просто запускает grpc_tools.protoc, но до этого создаёт структуру папок, аналогичную структуре пакетов в python.

Это требуется для того, чтобы корректно работал импорт в скомпилированных модулях.

Описание проблемы: protocolbuffers/protobuf#1491
Решение из: grpc/grpc#9575 (comment)

О генерируемых файлах

Генерируется два файла.

  • Оканчивающийся на _pb2.py: модуль с описанием типов и сервиса;
  • Оканчивающийся на _pb2_grpc.py: модуль, реализующий gRPC.

Другие примечания

pb2 - сокращение от ProtoBuf v.2.

Полезные ссылки

TODO

  1. Добавить простую авторизацию (метод "регистрации");
  2. Добавить в чат сообщения вида "Клиент подключился", "Клиент отключился".