RTC Forums
November 24, 2024, 06:32:25 AM
Welcome,
Guest
. Please
login
or
register
.
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Home
Help
Login
Register
RTC Forums
>
Subscription
>
Support
>
DelayedCalls block any other call from the same connection ?
Pages: [
1
]
« previous
next »
Print
Author
Topic: DelayedCalls block any other call from the same connection ? (Read 5179 times)
HelgeLange
RTC Expired
Posts: 100
DelayedCalls block any other call from the same connection ?
«
on:
May 13, 2015, 05:18:19 PM »
Hi Danijel,
I implemented my callback through DelayedCalls instead of a callback connection to the client.
I have a server that hosts several databases and normally some 50-100 clients connect to it using one of the databases.
Now sometimes the users posts a job (which I changed from an own implementation last night to serialized TRtcQuickJobs). When the Quickjob is done, all clients using the same database as the quickjob needs to be informed about the result. Before I used a callback connection but I changed it this morning to DelayedCalls. It works great and is easy to implement (as most of the RTC stuff), but I noticed something :
I have 1 function that informs the server that a job has to be done and in which database.
Then I have another function that gets the result through the delayed call. It has a delay of 30 seconds.
the first function comes in only when the delayed call is returning to the caller, like it's stuck.
Is multi-threaded a solution for that problem ? I rather ask, before I change everything to multi-threaded in code
Thanks in advance,
Helge
Logged
D.Tkalcec (RTC)
Administrator
Posts: 1881
Re: DelayedCalls block any other call from the same connection ?
«
Reply #1 on:
May 13, 2015, 05:47:04 PM »
That is correct.
When using DelayedCalls, you need a dedicated connection. The whole idea behind Delayed Calls is to send a request to the Server and keep the connection open, without sending a response, until the Server has Data ready to be sent back (a response), or a timeout occures. Because the Server needs a connection from the Client ready to receive a response immediately when a Result is ready, the connection can NOT be used for any other kind of communication when it is being used for a Delayed Call. So ... when you are working with Delayed Calls, you will always need at least two separate connections. One for the DelayedCall and the other one for making all other kinds of remote calls to the Server.
Best Regards,
Danijel Tlakcec
Logged
HelgeLange
RTC Expired
Posts: 100
Re: DelayedCalls block any other call from the same connection ?
«
Reply #2 on:
May 13, 2015, 06:26:35 PM »
So multi threaded will not work at all? Only a secondary connection ?
The connection is another HttpServer or just another ServerModule ?
Helge
Logged
D.Tkalcec (RTC)
Administrator
Posts: 1881
Re: DelayedCalls block any other call from the same connection ?
«
Reply #3 on:
May 13, 2015, 07:35:22 PM »
MultiThreaded has nothing to do with it. The Server also does NOT require changing. This is a Client-side requirement. The Client needs a separate physical connection for use with DelayedCalls. A secondary dedicated
TRtcHttpClient
component on the Client, just for DelayedCalls, so there will be a separate physical connection from the Client to the Server for making remote function calls where DelayedCalls are used on the Server.
Check the RTC Messenger Client and Server Demos if you need a hands-on example.
Best Regards,
Danijel Tkalcec
Logged
HelgeLange
RTC Expired
Posts: 100
Re: DelayedCalls block any other call from the same connection ?
«
Reply #4 on:
May 13, 2015, 07:40:26 PM »
Ok, thanks, that helps
Done, works like a charm. Cannot tell you enough how much code and work your components save me. Really good work!
Logged
Pages: [
1
]
Print
« previous
next »
Jump to:
Please select a destination:
-----------------------------
Dashboard
-----------------------------
=> General
=> 3rd-Party
=> Quick Start
-----------------------------
Subscription
-----------------------------
=> Support
Loading...