在xmpp和ejabberd中使用化身图像

在xmpp和ejabberd中使用化身图像,xmpp,chat,ejabberd,avatar,Xmpp,Chat,Ejabberd,Avatar,我正在创建一个文本聊天应用程序,并使用Ejabberd服务器和strophe.js 我使用mssql作为ejabberd的外部数据库。我转移了ejabberd的users表和rosterusers表中的所有应用程序用户 我想将应用程序的配置文件图像url指定为ejabberd用户的化身图像 在ejabberd数据库中的何处插入化身URL?我检查了vcard表,但没有头像图像url的列 我们可以使用ejabberd数据库处理它吗,或者ejabberd正在内部管理化身 如果我们无法管理ejabber

我正在创建一个文本聊天应用程序,并使用Ejabberd服务器和strophe.js

我使用mssql作为ejabberd的外部数据库。我转移了ejabberd的users表和rosterusers表中的所有应用程序用户

我想将应用程序的配置文件图像url指定为ejabberd用户的化身图像

在ejabberd数据库中的何处插入化身URL?我检查了vcard表,但没有头像图像url的列

我们可以使用ejabberd数据库处理它吗,或者ejabberd正在内部管理化身

如果我们无法管理ejabberd中的头像,那么我们如何将其与strophe.js一起使用,即将头像图像加密并接收其他花名册项目头像图像


请帮助

我相信您可以使用命令行中的命令
ejabberctl
将化身URL加载到用户的vcard中

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

从URL设置VCard图像:

我知道用户的配置文件映像,在使用strophe连接到ejabberd服务器后,我正在使用strophe节在vcard中设置配置文件映像

下面是在vcard中设置图像url的示例:

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

connection.sendIQ(iq);

希望它能帮助某人:)

谢谢slm。实际上,我正在创建网络聊天应用程序,不想构建一个从外部php或其他脚本调用命令行实用程序的模块。这真的有效吗?我正在查看spec(),很明显,您不应该在该上下文中使用EXTVAL。引用4.5.2:“元素不应该包含指向图像文件URI的元素。”是的,它在web应用程序中为我们工作。在移动应用程序上,我们正在使用另一种机制。@RohitTailor感谢您的回答。想知道在你的代码中什么是'currentUserObj.profileImg',它是文件上传的文件url还是base64字符串?currentUserObj.profileImg是图像的url(Amazon S3 url)。抱歉延迟回复。您好@RohitTailor您能告诉我您在移动应用程序中使用了哪种机制吗?因为我在移动应用程序中遇到了同样的问题。