我正在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异常
想知道,有什么方法可以检查连接状态并尝试重新连接以断开连接。
答案 0 :(得分:1)
gRPC automatically attempts re-connection,使用指数补偿。只要继续使用频道,问题解决后错误就会消失。
如果您对频道的当前连接状态感兴趣,可以使用ManagedChannel.getState()。