2016-08-24 3 views
0

Когда пользователь A и пользователь B находятся в режиме онлайн, и один из них изменяет аватар, все реестры пользователя получают строфу присутствия с элементом обновления vcard-temp с помощью хэша sha1 изображения, используемого как аватар.XMPP - vCard Уведомление об обновлении аватара для автономных списков

<presence from='[email protected]/balcony'> 
    <x xmlns='vcard-temp:x:update'> 
    <photo>sha1-hash-of-image</photo> 
    </x> 
</presence> 

Однако такое уведомление/строфа не генерируется для пользователей, которые в автономном режиме в то время, поэтому такой клиент не показывает никаких изменений в отображаемом аватаре.

Как автономный пользователь может получать обновления v-card из списков, если есть какие-либо изменения? Я не хочу просить vCard для всех списков, даже если изменений нет.

ответ

0

Я думаю, что клиент, поддерживающий протокол, должен включать аватар во все пакеты присутствия, а не только на изменение. Как объяснено в XEP-0153: vCard-Based Avatars:

Если клиент поддерживает протокол, определенный в данном описании, он должен включать в себя обновлении дочернего элемент в каждом присутствии транслируется он посылает и ДОЛЖЕН также включать ребенок обновления в направленном присутствии строф (например, (XEP-0045) [5] номеров).

Это означает, что пользователи в автономном режиме получат правильное присутствие и могут обновить аватар, когда они будут в сети.

+0

Привет @ mickaël-rémond Да, это проблема, ** Оба должны быть в режиме онлайн одновременно **, только после этого аватары могут быть уведомлены, даже если ребенок обновления включен во все существующие строфы. Я хочу отображать изменения аватара, даже если другой пользователь переходит в автономный режим после смены аватара. – sainiankit

+0

Затем вам нужно полагаться на другие механизмы, такие как: аватар запроса для обновления или использовать механизмы PEP/Pubsub. –

Смежные вопросы