我一直在尝试使User Avatar功能与OpenFire 4.2.3和S22.Xmpp c#库一起使用。我已经检查了OpenFire日志,没有错误报告,但是,当我更新用户头像时,永远不会触发AvatarChanged事件。
发送到OpenFire的消息是:
urn:xmpp:avatar:发送的数据请求:
<iq from='[JID]@[XMPPServer]/[Resource]' type='set' id='12'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='urn:xmpp:avatar:data'>
<item id='n/FBVoL4P63mjt3irV5NNRZ6Tos='>
<data xmlns='urn:xmpp:avatar:data'>iVBORw0KGgoAAAANSUhE..[BASE64 IMAGE]</data>
</item>
</publish>
</pubsub>
urn:xmpp:avatar:数据响应:
<iq type="result" id="12" from="[JID]@[XMPPServer]" to="[JID]@[XMPPServer]/[Resource]" xmlns="jabber:client" />
urn:xmpp:avatar:元数据请求:
<iq from='[JID]@[XMPPServer]/[Resource]' type='set' id='15'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='urn:xmpp:avatar:metadata'>
<item id='n/FBVoL4P63mjt3irV5NNRZ6Tos='>
<metadata xmlns='urn:xmpp:avatar:metadata'>
<info bytes='207561' height='57' width='64' id='n/FBVoL4P63mjt3irV5NNRZ6Tos=' type='image/png'/>
</metadata>
</item>
</publish>
</pubsub>
</iq>
urn:xmpp:avatar:metadata响应:
<iq type="result" id="14" from="[JID]@[XMPPServer]" to="[JID]@[XMPPServer]/[Resource]" xmlns="jabber:client" />
我花了一些时间进行调试,阅读XMPP规范,并提到需要订阅以接收Avatar更改,但是,我不确定该如何完成。
我的目标是能够设置用户头像,然后让此人员名册中的每个人都可以接收头像更新。
任何帮助将不胜感激。