[Standards] SIFT revisited
dave at cridland.net
Fri Jun 5 23:29:50 UTC 2009
On Fri Jun 5 23:57:06 2009, Peter Saint-Andre wrote:
> Fabio Forno has found some good results with SIFT on a mobile phone:
Hmmm - I had a long chat with Forno the other evening, and I've been
meaning to write it up in a more formal way for us all to share...
The general idea is that instead of SIFT at all, we have a single
command which simply says "Don't send my presence *until* you've
something else to send me." - or turns off that state. Nothing gets
dropped, just delayed, maybe by a maximum time.
So <presence/> gets buffered until either a <message/>, or an <iq/>,
needs sending. The client can flush the pending presence in a number
of ways, the most obvious one being simple using a XEP-0199 ping -
the response being quite sufficient to flush the presence down.
The user experience looks roughly as if presence is sometimes out of
date for a short while, but if a message arrives, it would "push
down" any delayed presence updates, so it wouldn't be often.
This is, I'd note, a pretty simple protocol to implement, and the
interesting thing about Fabio's experiment is that it shows it'd give
If we want to get complicated, we can point out that if we're
buffering presence anyway, we might collapse presence stanzas that
are overtaken by events - so if you go away, then xa, then offline,
the server *might* drop the away/xa changes, and just give the phone
a single offline.
Now, the reason I don't think the rest of SIFT helps is that I'm not
convinced that much "unsolicited" <iq/> traffic actually happens,
because well-behaved actors, at least, will check the disco#info and
only send <iq/> stanzas supported by the remote end. There are
exceptions, such as version queries, vcards from MUC (please, folks,
fix those), and pings - the latter, of course, rather relies on
Actually *dropping* data just strikes me as poor - I think we can do
much better than that.
FWIW, I *do* think that people want to have the concept of a "session
roster" vs "full roster", but I think that's a different problem to
solve. (And one that's quite easy, too, but harder to implement).
Dave Cridland - mailto:dave at cridland.net - xmpp:dwd at dave.cridland.net
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade
More information about the Standards