客户端断开连接时,有没有办法停止服务器端流

时间:2019-11-21 11:36:27

标签: java grpc

以下是表示服务器端流式传输的伪代码:

@Override
public void someMethod(XXRequest request,  StreamObserver<XXEvent> responseObserver) {
    try {
                while (!Context.current().isCancelled()) {
                    XXEvent event = heavyCompute();
                    if (event != null) {
                        responseObserver.onNext(event);
                    }
                }
    } finally {
           doClean();
    }
}

在客户端,如果一切正常,CancelableableContext.cancel()或ManagedChannel.shutdownNow()将优雅地终止someMethod调用,但是如果客户端崩溃,则someMethod调用将永远运行...

有没有办法解决这个问题?

谢谢。

0 个答案:

没有答案