2012-11-20 45 views
4

我正在創建一個文本聊天應用程序並使用Ejabberd服務器和strophe.js。在xmpp和ejabberd中使用頭像圖片

我正在使用mssql作爲ejabberd的外部數據庫。我將用戶表中的所有應用程序用戶轉移到ejabberd的rosterusers表中。

我想指定應用程序的配置文件圖像url作爲ejabberd用戶的化身圖像。

在哪裏可以將頭像網址插入ejabberd數據庫?我查了vcard表,但沒有列頭像圖片網址?

我們可以使用ejabberd數據庫處理它,或者ejabberd在內部管理頭像嗎?

如果我們無法管理ejabberd中的頭像,那麼我們如何將它與strophe.js一起使用,即sepcify頭像圖像並接收其他名冊頭像圖像?

請幫

回答

0

設置電子名片圖片:

我知道用戶的資料圖片和使用的strophe製作到ejabberd服務器的連接後,我在虛擬卡使用的strophe節設置個人資料圖片。

下面示例中的虛擬卡設定圖片網址:

iq = $iq({ type: 'set', to: currentUserObj.jabberid+ "@" + CDomain }).c('vCard', { xmlns:'vcard-temp' }).c('PHOTO').c('EXTVAL', currentUserObj.profileImg); 

connection.sendIQ(iq); 

希望它會幫助別人:)

+0

這真的有用嗎?我在看spec(http://xmpp.org/extensions/xep-0153.html),看起來很清楚你不應該在這種情況下使用EXTVAL。引用4.5.2:「元素不應包含指向圖像文件的URI的。」 – drewww

+0

是的,它在web應用程序中爲我們工作。在移動應用上,我們正在使用其他機制。 –

+0

@RohitTailor感謝您的回答。想知道代碼中'currentUserObj.profileImg'是什麼,它是文件上傳的文件url還是base64字符串? – redV

3

我相信你可以使用命令ejabberctl從命令行與化身網址加載到用戶的電子名片。從URL

ejabberdctl set_vcard foo chat.myjabber.com PHOTO http://link_to_image.jpg 
ejabberdctl set_vcard2 foo chat.myjabber.com PHOTO EXTVAL http://link_to_image.jpg 
+0

感謝SLM。其實我在web應用程序中創建聊天,並不想構建一個模塊來從外部php或其他腳本調用命令行實用程序。 –

相關問題