Skip to content

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

License

Notifications You must be signed in to change notification settings

ShGKme/py-grpc-chat-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Простой консольный чат на 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. Добавить в чат сообщения вида "Клиент подключился", "Клиент отключился".

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published