我創建(又一個)使用Smack和ejabberd的移動聊天應用。我試圖確定實現用戶頭像以供多用戶聊天室使用的最佳方式,當然也包括名單成員。看看可能的解決方案,我可以看到:XMPP支持多用戶聊天中的頭像
- XEP-0008基於IQ的頭像 - 頭像被限制爲64 x 64像素,太小。
- XEP-0153基於vCard的頭像 - 易於在名單和MUC房間中爲兩個用戶實現,然而(a)像this這樣的源似乎表明自己的vcard需要在每次登錄時下載(這是嚴格正確的(b)應該小於96乘96像素(仍然非常小)
- XEP-0084基於個人事件協議的用戶頭像 - 我不清楚我如何可以基於此協議檢索多用戶聊天室中的所有用戶的頭像。加入聊天室後,我需要訂閱所有用戶的元數據節點,以及隨後加入的用戶?當他們離開房間時也取消訂閱?我認爲這將是非常難看和笨拙的實施。
有人能指點我在正確的方向,或指出我可能誤解的地方嗎?謝謝。
您是否試過XEP-0054? – souvickcse
謝謝@souvickcse,我明白XEP-0153是建立在XEP-0054之上的。但是,我發現我可以在XEP-0053中使用vCard的BINVAL和EXTVAL字段來存儲圖像數據或URI到圖像。一些問題:1.對於我們可以在BINVAL中存儲的數據的大小,是否存在實際或理論上的限制?我在規範2中看不到任何內容:用戶自己的vCard是否需要在每次登錄時重新加載?這只是確保跨客戶端同步的一項要求嗎? 3.是否有一種方法可以使用現有的XMPP頭像規範之一來實現此目標(例如標準且交叉兼容)? – Dave
嗨,我沒有那麼多的想法(對此感到抱歉)我已經在我的項目中使用過這個使用https://github.com/robbiehanson/XMPPFramework代碼:'NSData * photoData = [[[AppDelegate delegate ] xmppvCardAvatarModule] photoDataForJID:user.jid];' – souvickcse