[JDEV] Heartbeat patch for dialup and laptop users and faulty presence info
Ben Schumacher
ben-jdev at blahr.com
Wed May 29 12:27:50 CDT 2002
On Wed, 29 May 2002, Nathan Sharp wrote:
> 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.
[...snip...]
> 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.
[...snip...]
It seems to me that you are trying to solve this issue in the wrong way.
If you want guaranteed message delivery, then the protocol will have to be
adjusted to have clients send notification when a message is delivered
(like return-receipts in email, but hopefully more intelligent). In fact,
I would argue that guaranteed message delivery should be the
responsibility of the client rather than the server. Modifiying the server
to provide this functionality brings up the question of "what is the
appropriate behavior if a message isn't deliver?" Should the server put
the message in offline storage? Bounce an error message? What happens if
offline storage isn't configured on the receiving party's server?
On the other hand, I do agree that faulty presence is an issue. I hate
messaging people and then realize that they aren't actually online. My
only goal is that we keep this discussion focused. You will *NOT* solve
lost message issues with a ping/pong solution, however, you might be able
to provide better presence reliability.
That being said, I'm afraid that I'd have to side with Dave Waite on this
issue, I don't think ping/pong is a good solution (or even your existing
ping solution), especially when you consider that wireless clients are
likely to have some of the most pronounced connectivity issues and highest
costs of bandwidth. A better solution should be proposed as a protocol
change, perhaps as a negotiated timeout period where a client tells the
server upon logging in that if it doesn't send data within a given amount
of time, then the server should consider it unavailable.
My $0.02.
bs.
More information about the JDev
mailing list