Документация gRPC показывает нам два способа взаимодействия с сервером:
- блокирующий/синхронный
- неблокирующий/асинхронный
И сгенерированный код (Java) для клиента, эти два примера заглушки указаны.
blockingStub = RouteGuideGrpc.newBlockingStub(channel); asyncStub = RouteGuideGrpc.newStub(channel);
С asyncStub
мы должны использовать StreamObserver чтобы потреблять ответ.
Однако внутри классов асинхронного типа у нас будет возможность использовать метод/| newFutureSutb . С ним мы добавляем контроль через//обратные вызовы .
Следующий пример показывает нам это использование.
Документация
Создание экземпляра заглушки
Оригинал: “https://dev.to/e240683/grpc-llamadas-asincronas-con-futurestub-1a42”