On Tuesday 21 February 2006 09:58, Itamar Shtull-Trauring wrote:
On Tue, 2006-02-21 at 18:40 +0100, Luc Stepniewski wrote:
On Tuesday 21 February 2006 17:06, Itamar Shtull-Trauring wrote:
The typical way to do this is have some sort of remote_ping method that returns immediately on the server (or on the client) that the client (or the server) calls every once in a while, with a timeout for the response. If that times out the problem is likely the connection, not the server being slow, in which case you can close the connection.
Yes, it's the same thing as making a pseudo "timeout" with a callLater.
Not exactly. What I'm suggesting is a different command that you send in addition to your regular operations. This extra command, "ping", is expected to return a result quickly; if it doesn't you know something is wrong. That way even if your regular commands take a really long time for the server to process you can still tell if the server itself (or your connection to it) is ok. Every 10 seconds, say, you ping the server; if you don't get a response back in 5 seconds it's probably down.
That's actually what I'm doing with my application - although for a different reason. I send a "ping" that immediate is answered by a "pong" - if I don't get the pong withing 30 seconds I shut the connection down. My reason is a missconfigured firewall at one of my clients which drops forwarding after about 90 seconds idle time. Since I couldn't get their (incompetent) network admin to fix it I send a ping every 30 sec, so the firewall thinks the connection is active and doesn't drop it. Luc: if you need the code for that (although it's very simple), drop me a line. UC -- Open Source Solutions 4U, LLC 1618 Kelly St Phone: +1 707 568 3056 Santa Rosa, CA 95401 Cell: +1 650 302 2405 United States Fax: +1 707 568 6416