Hi, On Mar 26, 2009, at 10:54 AM, Fabio Forno wrote:
Hi, we're implementing user avatars with our mobile client and we're trying to do that with bandwidth issues in mind. According to xep-163 the only reliable way to sync items (avatar version) is sending the latest item to each user session, then if the clients notices a change it can retrieve the avatar. For mobiles this is rather heavy since the average pep notification is 500 bytes, while the vcard-temp:x:update child in the presence is just 100 bytes, and both must be sent each user session. This means that for mobiles it is far better using the old vcard based protocol, approach I don't like since PEP is much more useful. Therefore I'm trying to think of a way to reduce the item notifications and send them only when they are really changed, not to each user session. So far the best way I thought of is extending client presence with an uuid identifying the client instance, so that the PEP service can figure out whether that client has already been updated. Example: <presence> <c capabs/> <x xmlns="urn:xmpp:client:uuid:0" uuid="some-uuid"> </presence> The pep service matches the uuid for each node the client is subscribed to and, if it hasn't sent the latest item to that uuid it sends an event notification, otherwise it does nothing, avoiding sending redundant data.
I understand your problem, but do you really want to send that with all the <presence>'s or just the initial one?
Also, do you have any data on the size of those 500 and 100 bytes after compression?
Best regards, -- Pedro Melo Blog: http://www.simplicidade.org/notes/ XMPP ID: [email protected] Use XMPP!
