Title: 'Chaining' requests Post by: jonb2 on February 22, 2012, 03:42:42 PM Hi Danijel
Yup, it's me again :-( Re: HTTPClient requests OK, I have now been working on your advice and each server has its own dedicated client. I now need to be able to 'chain' the requests, one after the other. Remember I suggested an input repository for the request.info command? I need to know what to look for if using multi-threading to check a client is ready to make the new request after a previous one. I still have not 'got' the event sequence properly, as i said, a visual representation of this would be great for me, as this is how I see things. But and ... So ... > Do request 1 when done process request when done? Perhaps not necessary, as the client thread for the second request is ready anyway? > Do request 2 when done process request when done > Do request 3 when done process request Please could you indicate how this is done without error. TIA Jon Title: Re: 'Chaining' requests Post by: D.Tkalcec (RTC) on February 22, 2012, 03:59:22 PM The OnResponseDone event will fire on the TRtcDataRequst component after a full response was received from the Server. From there, you can prepare and post a new request.
PS. RTC SDK uses events for all kinds of notifations, and each event is explained in the help file as well as component/class declaration (see source code comments). Best Regards, Danijel Tkalcec Title: Re: 'Chaining' requests Post by: D.Tkalcec (RTC) on February 22, 2012, 04:09:18 PM Also check the "OnResponseAbort" event, which will be fired in case a request or a response were aborted. By using "OnResponseDone" and "OnResponseAbort" events, you can implement request chains, even if you don't know where each request should be sent to.
Another solution for implemeting "chaining requests" to a specific Server (when Address and Port aren't changing between requests) is to post all request(s) immediately when you "have" them. This will place each posted request into a request queue and processes one request after another. Best Regards, Danijel Tkalcec Title: Re: 'Chaining' requests Post by: jonb2 on February 22, 2012, 04:26:38 PM Thanks D.
I am sorry, but i want to be clear ... So a series of while loops for "OnResponseDone" and a 'completed' reference from each 'process request' procedure. The reason I ask is that because it's an asynchronous progress, the IF statement won't work for a sequence? I still think a visual diagram would help for idiots like me :-) J PS. Just read "Another solution for implemeting "chaining requests" to a specific Server (when Address and Port aren't changing between requests) is to post all request(s) immediately when you "have" them" <<< I think this is what I was saying above. Title: Re: 'Chaining' requests Post by: D.Tkalcec (RTC) on February 22, 2012, 04:33:54 PM Maybe you mean something else with while loops for "OnResponseDone", but I just want to make clear that there are no "while" loops in the RTC SDK, because the components are fully event-driven. The "OnResonseDone" event will be triggered after a complete response is received, while the "OnResponseAbort" event signals that a request/response chain was abborted (connection problems).
But I guess you already have the solution you were looking for. Simply use "Post" to fill a request queue and let the component handle "chaining" of requests inside the queue. You can post a new request at any time, even while other requests are currently being processed. The request will then simply be added to the end of the request list and processed once all the other requests from the list are done. Best Regards, Danijel Tkalcec Title: Re: 'Chaining' requests Post by: jonb2 on February 22, 2012, 04:45:08 PM Thank you D. I think I might 'just' scrape a pass in this now.
|