0
我用grpc爲webcam-stream創建了一個微服務。流媒體工作正常,但流的取消僅在客戶端工作。GRPC服務器正在取消客戶端
如果客戶端調用CancellableContext.cancel,則視頻流將停止,但服務器仍在使用該視頻流播放視頻。如果取消被調用,則服務器拋出Transport faild異常。
這個異常可以抓住停止在服務器端的流或其他操作嗎?
ClientCall<KameraStreamRequest, KameraStreamResponse> call = (ClientCall) imageStreamBlockingStub.getChannel().newCall(ImageStreamServiceGrpc.METHOD_IMAGE_DATA_STREAM, imageStreamBlockingStub.getCallOptions());
call.sendMessage(KameraStreamRequest.newBuilder().setStreamState(StreamState.STOP).build());
流式傳輸是通過一個帶有State.START枚舉的簡單請求開始的。如果我撥打上面的代碼將狀態更改爲STOP,我將成爲一個例外:
Exception in thread "main" java.lang.IllegalStateException: Not started
at com.google.common.base.Preconditions.checkState(Preconditions.java:174)
at io.grpc.internal.ClientCallImpl.sendMessage(ClientCallImpl.java:388)
at org.cpm42.grpcservice.ImageStreamClient.cancelStream(ImageStreamClient.java:70)
at org.cpm42.main.StreamClientMainClass.main(StreamClientMainClass.java:21)
我讀過這可能是一個錯誤。
是否有可能獲得會話或連接或其他服務器端?
感謝