[C++] Understanding async command queue and streams

32 views
Skip to first unread message

Kintoun

unread,
Jan 11, 2019, 9:33:57 PM1/11/19
to grpc.io
I'm looking at using gRPC for a project of mine but am having problems understanding if my needs are supported by gRPC. Before jumping into code and trying via trial and error I thought I would ask here for faster turn around.

I have a two processes running on a machine and am looking to use gRPC for the IPC between them. The client will send many various async unary RPCs to the server. But I also want the server to be able to send "push notifications" (usually work progress information, but some potentially unsolicited) to the client. The latter is where I am getting stuck. Here are what I believe are my options.

Option 1) The client opens many long-lived server streams.
But can server streams multiplex? Can the client stay async and continue to make requests and accept responses (some server streaming some not) from the server? I most definitely want to have the server processing multiple requests at once and sending request progress to the client simultaneously.

Option 2) Both processes function bidirectionally as a client and a server. Meaning "push notifications" are simply the server acting as a client, and the client acting as a server.
Not ideal since I assume this would take two sockets and multiple channels? Plus the proto definitions get wonky when we have the client defining Services.

Are there other options I am missing? Thanks!
Reply all
Reply to author
Forward
0 new messages