我正在使用Smack和ejabberd创建(又一个)移动聊天应用。我正在尝试确定实现用户头像以在多用户聊天室中使用的最佳方式,当然还有名册成员。看看可能的解决方案,我可以看到:
有人可以指出我正确的方向,或指出我可能误解的地方吗?感谢。
答案 0 :(得分:0)
我想解决此问题的最佳方法可能是通过HTTP服务器在带外存储/加载图像。图像可以用文件名存储,例如" username_imagehash.xxx"。对于不在一个人名单中的用户(例如多用户聊天中的陌生人),我们通过从他们的vCard PHOTO字段中检索到的URI来获取他们的头像。每次重新/遇到陌生人时,我们都会重新加载他们的vCard,并且可以通过更改vCard中的URI来确定是否需要重新下载他们的照片。
一旦用户被添加到名单中,我们就会通过XEP-0084订阅他们的头像更新,发布相同的URI(参见XEP-0084中的示例4.)。
我认为这符合所有要求,一旦我实施,我会发现。我可以理解在标准XMPP客户端中不是这样做的,因为它依赖于与XMPP服务分开的HTTP服务器(并且需要处理HTTP服务器安全性 - 用户授权/认证)。
欢迎反馈!