[JDEV] Heartbeat patch for dialup and laptop users and faulty presence info
Nathan Sharp
spamnps+jabber at phoenix-int.com
Wed May 29 08:55:28 CDT 2002
While all this is good discussion, the fact remains that as jabber
currently stands, it often reports users as online for hours after they
are not online, and FAILS TO DELIVER packages or to return an error when
users are in this state. I would make the point that one of the main
reasons I switched from ICQ to Jabber was that ICQ started loosing
messages now and then. When I discovered that Jabber did the same, I
was quite dissapointed, although w/ Jabber I stand a chance of fixing it
since it is open source.
Please take note, what I'm suggesting is a configurable option, not a
required protocol change. In fact, in the patch I submitted the
heartbeat option is turned off by default (a mistake in my mind, but I
wanted to be polite).
The biggest argument I've heard so far is that ping/pongs would take too
much bandwidth. If your end users would prefer very slightly less
bandwidth used yet LOST MESSAGES AND FAULTY PRESENCE info, well, you got
different users than mine.
So unless some new solution comes up (my ears are open!), I'm going to
continue down the ping/pong solution. If anyone wants to help design
this such that minimum bandwidth is consumed, I'd be happy to entertain
further discussion along those lines.
Lastly, to reiterate why TCP timeouts and keepalives don't solve the
problem:
- Timeouts only work if packets have been sent. Jabber can currently
go long periods of time w/o needing to send a packet to a client.
- Keepalives can't do a good job on all platforms. Read section
4.2.3.6 of RFC 1122. These have to be configured at the system level,
if they can be configured at all!
- Fact is that instant messaging IS a special case and has different
requirements for keepalive than most any other protocol. No, I don't
want sendmail or POP3 wasting bandwidth with keepalive type packets.
YES I do want Jabber to do so and YES it should be an application
specific solution.
My apologies for the capitalizations. Sometimes I get out of control ;-)
Nathan
More information about the JDev
mailing list