Kotlin / Java grpc проверить статус подключения

Я пишу одно приложение на Kotlin для подключения к серверу grpc и получения данных.

Ниже мой фрагмент кода:

channel = ManagedChannelBuilder.forTarget("localhost:25001")
                .usePlaintext()
                .build()

stub = hello.HelloGrpc.newBlockingStub(channel)

Мой сервер GRPC не работает, но я вижу значения обеих переменных, как показано ниже:

for channel = channelManagedChannelOrphanWrapper{delegate=ManagedChannelImpl{logId=1, target=localhost:25001}}
for stub = channelhello.HelloGrpc$HelloBlockingStub@19b843ba

Я запутался, как проверить, не активно ли соединение.

На данный момент я добавил оператор try catch при получении значения, что вызывает у меня ошибку.

НЕДОСТУПНО: исключение io

Просто интересно, есть ли способ, с помощью которого я могу проверить состояние своего подключения и попытаться повторно подключиться, если соединение прервано.


person RKP    schedule 06.05.2020    source источник
comment
Это помогает? github.com/grpc/grpc/blob/ master / doc /   -  person Animesh Sahu    schedule 06.05.2020


Ответы (1)


gRPC автоматически пытается повторно подключиться, используя экспоненциальную задержку . Просто продолжайте использовать канал, и ошибки исчезнут, когда проблема будет решена.

Если вас интересует текущий статус подключения к каналу, вы можете использовать ManagedChannel.getState ().

person Eric Anderson    schedule 06.05.2020