Tomasz Sterna a écrit :
On Pn, 2008-01-21 at 19:34 +0100, Yann Leboulanger wrote:
Not really. It's pretty verbose. We generally prefer to send
whitespace
over the TCP connection. We usually call that "whitespace ping".
I thought "keepalives" is a more common name. :-)
That won't inform us if connection is brocken or server is down as
those whitespace ping don't receive a pong ...
Not fully true.
You really do not receive "pongs" at the application level, but you
really do not need to.
Every sent TCP packed is ACK'ed on the TCP level. If it isn't ACKed it
is resent a few times until a timeout is reached and the broken
connection is signalled to the application level.
hmm interesting, I'll try to see what I can do in python. That's indeed
better that XEP-198 and XEP-199 for what I want to do.
Other option is immediate detection of broken connection by receiving
NACK. This also is signalled to the application level.
That sound a bit hard to disconenct when the first packet is not received :)
This is all going "under the hood" and there is no reason to reimplement
it at again at application level. The TCP layer implementation is
usually very effective.
You may want to tune the timeout values though, but most modern OSes
have it set up at reasonable defaults.
you know what "reasonable defaults" means ? some minutes ?
--
Yann