【问题标题】:XMPP - vCard Avatar Update Notification to Offline RostersXMPP - 离线花名册的 vCard 头像更新通知
【发布时间】:2016-12-31 14:03:33
【问题描述】:

当用户 A 和用户 B 都在线并且其中一个更改了头像时,用户的所有花名册都会收到一个带有 vcard-temp 更新元素的状态节,其中图像的 sha1 哈希用作头像。

<presence from='juliet@capulet.com/balcony'>
  <x xmlns='vcard-temp:x:update'>
    <photo>sha1-hash-of-image</photo>
  </x>
</presence>

但是,没有为当时离线的用户生成这样的通知/节,所以这样的客户端显示的头像没有变化。

当有任何变化时,离线用户如何从名册中获取 v-card 更新?我不想为所有花名册索要 vCard,即使没有变化。

【问题讨论】:

    标签: xmpp smack xmppframework vcf-vcard


    【解决方案1】:

    我认为支持该协议的客户端应该将头像包含在所有存在数据包中,而不仅仅是更改。如XEP-0153: vCard-Based Avatars 中所述:

    如果客户端支持这里定义的协议,它必须包含 在它发送的每个存在广播中更新子元素,并且应该 还包括在定向存在节中的更新子项(例如, 加入多用户聊天时发送的定向状态 (XEP-0045) [5] 房间)。

    这意味着离线用户将获得正确的状态,并且可以在他们都在线时更新头像。

    【讨论】:

    • 嗨@mickaël-rémond 是的,这就是问题所在,两者必须同时在线,只有这样才能通知头像更改,即使包含更新子项在所有存在节中。即使其他用户在更改头像后下线,我也希望显示头像更改。
    • 那么您需要依赖其他机制,例如:查询头像进行更新或使用基于 PEP / Pubsub 的机制。
    • 这个@sainiankit 有什么改进吗?此后您是如何处理线下案件的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 2012-05-23
    • 2018-03-10
    • 2016-07-26
    • 1970-01-01
    • 2011-02-03
    相关资源
    最近更新 更多