In gRPC, both the client and server make independent and local determinations of the success of the call, and their conclusions may not match. This means that, for example, you could have an RPC that finishes successfully on the server side (“I have sent all my responses!”) but fails on the client side (“The responses arrived after my deadline!”). It’s also possible for a server to decide to complete before a client has sent all its requests.
Thanks
Shin
Hi AllI have a question about the bidirectional stub. I'm using gRPC-java 1.16.1.If the server side call onCompleted or onError. Does it mean the stub has already been closed or just the server side been closed?
This can become to another question. Once the server invoked onError, the client side needs to call onComplete/onError to close its stream?
I wrote a simple echo service to verify this question.At first, when the server invoked onError to tell the client. The client invoked onCompleted to tell the server that the client stream is completed.However I found the onCompleted method in the server observer did not be invoked. So is it indispensable? Does it cause any connection leak?
I'm confused by the gRPC guideline concepts.RPC termination
In gRPC, both the client and server make independent and local determinations of the success of the call, and their conclusions may not match. This means that, for example, you could have an RPC that finishes successfully on the server side (“I have sent all my responses!”) but fails on the client side (“The responses arrived after my deadline!”). It’s also possible for a server to decide to complete before a client has sent all its requests.
Thanks
Shin