2016-08-24 12 views
0

ユーザーAとユーザーBの両方がオンラインで、そのうちの1人がアバターを変更すると、ユーザーのすべてのロスターは、sha1ハッシュのvcard-temp更新要素を含むプレゼンススタンザを受信しますアバターとして使用される画像のXMPP - vCardアバター更新オフラインロースターへの通知

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

しかし、そのような通知/スタンザは、その時点でオフラインになっているユーザーのために生成されていない、ので、このようなクライアントは、表示されたアバターには変化を示しません。

変更があった場合、どのようにオフラインユーザーがロスターからvカードのアップデートを受け取ることができますか?変更がない場合でも、私はすべてのロスターに対してvCardを要求したくありません。

答えて

0

私は、プロトコルをサポートするクライアントは、変更だけでなく、すべてのプレゼンスパケットにアバターを含めるべきだと思います。 XEP-0153: vCard-Based Avatarsで説明したように:

クライアントは、本明細書に定義されたプロトコルをサポートしている場合、それは放送、すべての存在下で 更新子要素を含まなければならない、それが送信し、SHOULD も監督プレゼンススタンザ(例えば、 での更新の子を含めますマルチユーザチャット(XEP-0045)[5] 部屋に参加したときに送信されるダイレクトプレゼンス。

これは、オフラインのユーザーが正しいプレゼンスを取得し、両方がオンラインのときにアバターを更新できることを意味します。

+0

はい、それは問題です**両方同時にオンラインでなければなりません**、更新の子がすべてのプレゼンススタンザに含まれていても、アバターの変更は通知されます。私は、アバターを変更した後に他のユーザーがオフラインになっても、アバターの変更を表示したい。 – sainiankit

+0

次に、更新のためのアバターの照会やPEP/Pubsubベースのメカニズムのような他のメカニズムに頼る必要があります。 –

関連する問題