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.

-- 
Fabio Forno, Ph.D.
Ooros srl
jabber id: [email protected]

Reply via email to