I am investigating the viability of using gRPC (C++ version) to replace our
existing RPC framework at Electronic Arts and would appreciate if somebody
can provide me some answers in order for me to make the best judgement. For
most of our existing usage, I have an idea of how to do that via gRPC.
However, few questions remain.
1. *Detecting a dead client on server:* Is there a way or recommended
mechanism to detect a client who is no longer connected to the server after
an abrupt client shutdown? In our current framework, we get a TCP level
disconnect which then ends the user session. But looking around the gRPC
code base and searching past discussions in the group, the connection layer
is hidden away and this information is not exposed. Detecting a dead client
early is important in scenarios where client's state may be important to
other clients. We have many use cases for it. For example, if two players
are connected in a game session and one of them goes away, we'd like to
update the status of that person on other client's machine.
I was wondering if I have a bi-directional streaming RPC for the sole
purpose of detecting a disconnect, would I get any error on that stream in
case of an abrupt client shutdown? It did not seem like that from the async
interface though (async_stream.h).
2. *Server side connection management:* Is there a doc that details the
server side connection management? I am trying to figure out details like
how long does a socket remain active for an inactive client? Is this a
setting that can be customized? Are there any sort of connection metrics
that are exposed to the application?
Appreciate your time.
You received this message because you are subscribed to the Google Groups
To unsubscribe from this group and stop receiving emails from it, send an email
To post to this group, send email to email@example.com.
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit
For more options, visit https://groups.google.com/d/optout.