Hi John, I have added 2 variant of routeguide example, one for asyn stream with one rpc and other for async stream multiple rpc. You can take a look at the code. this was working with grpc 0_11 version. This will give you a good idea of how to use grpc for asyn stream.
https://drive.google.com/open?id=0B1MMqYKUHgtJQWN4cjB6U25LdTQ Thanks Chaitanya On Thu, Jun 15, 2017 at 6:39 PM, John Coffey <[email protected]> wrote: > Chaitanya, > > that would be really useful, thanks, I will look forward to seeing the > code. It is strange that gRPC does not have asynchronous stream support, > you would think this kind of listener/observe pattern would be a pretty > popular feature. > > John > > > On Thursday, June 15, 2017 at 12:55:10 AM UTC-4, Chaitanya Gangwar wrote: >> >> Hi John, >> >> When i was working on this, there was no example in grpc package to do >> the same. Actually, what you need here is asynchronous streaming, but in >> examples, there are 2 variant, one is synchronous stream (routeguide) and >> normal async rpc (helloworld). You have to understand both the examples and >> need to implement async stream yourself. I may have some poc code with me >> where i tested this functionality. Ill check my repo and will post it to >> you. May be that will be of some help for you. >> >> Thanks >> Chaitanya >> >> On Thu, Jun 15, 2017 at 12:38 AM, John Coffey <[email protected]> wrote: >> >>> Josh/Chaitanya, I have a similar application - are there any C++ >>> examples that do this kind of thing? I just posted a new question to the >>> newsgroup asking and then I found this thread. >>> >>> John >>> >>> On Friday, January 22, 2016 at 4:53:42 PM UTC-5, Josh Humphries wrote: >>>> >>>> There is an example of streaming, at least in a proto file: >>>> https://github.com/grpc/grpc/blob/master/examples/protos/hel >>>> lostreamingworld.proto >>>> In this case, the server is expected to just immediately send the >>>> requested number of messages. >>>> >>>> >>>> Assuming you had some "registry" of streams that represent clients to >>>> which you forward data: >>>> >>>> In your server implementation, you'd just register the StreamObserver >>>> (that's what its called in the Java runtime >>>> <https://github.com/grpc/grpc-java/blob/master/stub/src/main/java/io/grpc/stub/StreamObserver.java> >>>> anyway). >>>> >>>> Here's example generated code for an endpoint with a streaming >>>> response: https://github.com/grpc/grpc-java/blob/master/exam >>>> ples/src/generated/main/grpc/io/grpc/examples/routeguide/ >>>> RouteGuideGrpc.java#L80 >>>> (That's the interface you implement on the server.) >>>> >>>> When your server receives data from whatever other source, it can >>>> consult this registry of streams and then call onNext to send the client(s) >>>> data. Unregister when the stream errors or when you close the stream. You >>>> close it via calling onComplete or onError (latter will send error code to >>>> the client). >>>> >>>> >>>> >>>> ---- >>>> *Josh Humphries* >>>> Manager, Shared Systems | Platform Engineering >>>> Atlanta, GA | 678-400-4867 >>>> *Square* (www.squareup.com) >>>> >>>> On Fri, Jan 22, 2016 at 3:51 PM, Chaitanya Gangwar < >>>> [email protected]> wrote: >>>> >>>>> Thanks josh for the reply. So for this case i need both async server >>>>> and client. sync rpc will not work. please correct me if i am wrong. also >>>>> do we have any example which i can look into. i checked async helloworld >>>>> but that is simple rpc do we have any example for async stream rpc. >>>>> >>>>> On Friday, 22 January 2016 12:28:18 UTC-8, Chaitanya Gangwar wrote: >>>>>> >>>>>> Hi, >>>>>> >>>>>> I have a requirement, where multiple clients send (register) a >>>>>> request to server and continue, whenever server have data, server will >>>>>> push >>>>>> the data to clients. it may be possible that server may not have data at >>>>>> present and will keep pushing data whenever it has. Some other thread is >>>>>> providing the data to server. >>>>>> >>>>>> Can i do this with grpc without blocking the server and client. What >>>>>> i understand from grpc streaming is that client will be waiting for data >>>>>> till server sends out the data and after receiving the data it closes the >>>>>> connection. >>>>>> >>>>>> please help, if i can do this using grpc and if yes how should i >>>>>> design this. >>>>>> >>>>>> thanks >>>>>> Chaitanya >>>>>> >>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "grpc.io" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/grpc-io/586023c6-8a37-4662 >>>>> -a592-0047b7c916d4%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/grpc-io/586023c6-8a37-4662-a592-0047b7c916d4%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "grpc.io" group. >>> To unsubscribe from this topic, visit https://groups.google.com/d/to >>> pic/grpc-io/FKeg4yfB-Jo/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at https://groups.google.com/group/grpc-io. >>> To view this discussion on the web visit https://groups.google.com/d/ms >>> gid/grpc-io/3533c9ab-ad6a-4566-9e49-ed438d565eb3%40googlegroups.com >>> <https://groups.google.com/d/msgid/grpc-io/3533c9ab-ad6a-4566-9e49-ed438d565eb3%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to a topic in the > Google Groups "grpc.io" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/grpc-io/FKeg4yfB-Jo/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/grpc-io. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/grpc-io/15c847d8-5111-410b-8ddf-912bbc631135%40googlegroups.com > <https://groups.google.com/d/msgid/grpc-io/15c847d8-5111-410b-8ddf-912bbc631135%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/CAOg0UVQbXsmuLb5sA7FZHKMorpEWWzK_5us-moOg5dGgnnz4Bg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
