[jdev] That presence problem again

Bruce Campbell b+jabber at bruce-2007.zerlargal.org
Fri Apr 20 13:38:02 CDT 2007

This more of a 'what are people doing now' question, not a 'what should 
the implementations be doing'.

Lets say that my Jabber client has an avid desire to know the accurate 
online status of remote JIDs, and the roster subscriptions are 'both'.  To 
that end, my client makes the assumption that if no update to the status 
has been received in an hour, then something has possibly happened to the 
remote JID that hasn't been properly pushed to my client (remote server 
restart normally ).

How should my Jabber _client_ get the latest news about the remote JID?

The solutions that I've tried to get this information are:

   A) Presence probes.  Swallowed by some servers.
 	<presence to='remoteJID at some.where' type='probe'/>
 	<presence to='remoteJID at some.where' from='me at my.domain' type='probe'/>

   B) Directed presence saying unavailable then available again.
 	<presence to='remoteJID at some.where' type='unavailable'/>
 	<presence to='remoteJID at some.where'/>

   C) Subscribe to their presence again.
 	<presence to='remoteJID at some.where' type='subscribe'/>

and finally (this far less frequently than anything directed at a given 

   D) Unavailable then available again to the entire roster.
 	<presence type='unavailable/><presence/>

Of these, the 'subscribe' trick seems to be the most consistent at 
returning the desired information.  'probe's seem to get swallowed by a 
number of servers, and appearing to go offline and online again just 
irritates the remote users.

Any other tricks that people use?

   Bruce Campbell.

More information about the JDev mailing list