Java GRPC ConnectivityState不工作是否正确?

Java GRPC ConnectivityState不工作是否正确?,java,state,grpc,channel,connectivity,Java,State,Grpc,Channel,Connectivity,以上代码是GRPC客户端。它与grpc服务器连接。但每次通道状态为空闲时?连接和就绪状态是什么时候?怎么了?需要等待另一个状态。 以下代码在服务器未启动时打印连接状态:瞬时故障,在服务器正常时打印连接状态:就绪。 gRPC版本:1.24.0 ManagedChannel managedChannel = ManagedChannelBuilder .forAddress("localhost", 9090)

以上代码是GRPC客户端。它与grpc服务器连接。但每次通道状态为空闲时?连接和就绪状态是什么时候?怎么了?

需要等待另一个状态。 以下代码在服务器未启动时打印连接状态:瞬时故障,在服务器正常时打印连接状态:就绪。 gRPC版本:1.24.0

ManagedChannel managedChannel = ManagedChannelBuilder
                    .forAddress("localhost", 9090)
                    .usePlaintext().build();

System.out.println("State: " + managedChannel .getState(false)) // State: IDLE

Grpc.Stub stub = Grpc.newStub(managedChannel);

System.out.println("State: " + managedChannel .getState(false)) // State: IDLE

stub.callMethod();

System.out.println("State: " + managedChannel .getState(false)) // State: IDLE

我想你应该参考这篇文章,它对我没用你使用的是什么版本的GRPCJava?1.30版本的gRPC
ManagedChannel managedChannel = ManagedChannelBuilder
    .forAddress("localhost", 9090)
    .usePlaintext().build();
 
ConnectivityState state = channel.getState(true);
while (state == ConnectivityState.IDLE || state == ConnectivityState.CONNECTING) {
    state = channel.getState(true);
}

System.out.println("connection state: " + state.toString());