Well, basically, it's two problems: The spam of popups when you log in
and the delayed presence.
We've already found that there isn't a spam popup problem if your client
implements long established protocols (jabber:x:delay) correctly.
The real problem with the presence flood is that they come for about 5
minutes for me. It's like there's one wave of available presences
every 30 seconds. This is kind of annoying if you just connect to see
if somebody is online and don't know "Hm, is that person offline or
haven't I just received the presence yet?"
I know that this is also an implementation issue, maybe more of an
implementation issue than a protocol issue. But having a protocol that
sends all initial presences at once would do two things:
1.) Force server developers to cache.
2.) You know when you got all presences and then definitely know if
somebody is online without waiting 10 minutes just in case you didn't
get the initial presence yet.
Having your server cache the presence's isn't going to help you and will
infact make things far worse in your case as it seems your server if its
taking 10 minutes for some of the presence's to pop through is having
serious connectivity issues with the other servers in question and no
amount of caching is going to solve that problem, caching is going to
make the situation far worse for you as even if you receive that initial
presence saying the other contact is online if its taking stanzas 10
minutes to come through then even if your contact logged off 8 minutes
ago your server and now you are going to think they are online when they
arn't.
I would suggest you get the underlying connectivity issues resolved
before even thinking about protocol changes that could infact just make
the whole situation worse.
Rich