我们结合 Openfire 3.7.1 和 Mysql 数据库在我们的应用程序中添加了 jappix 迷你聊天功能。
在 Openfire 管理控制台中启用了 HTTP 绑定。
聊天在另一台服务器上运行良好,但似乎我们无法再从客户端获取名册。在构建联系人列表(好友)时,我们总是从 Openfire 得到以下空响应:
获取请求:
<body xml:lang='fr' rid='827616' sid='ad92bb0e' xmlns='http://jabber.org/protocol/httpbind' key='26620f678e64cc9f04ea31b69525db88c9655545' >
<iq xmlns="jabber:client" type="get" id="1" xml:lang="fr">
<query xmlns="jabber:iq:roster"/>
</iq>
</body>
回复 :
<body xmlns='http://jabber.org/protocol/httpbind'>
<iq xmlns="jabber:client" type="result" id="1" to="atinel@domain/Chat (1452607565973)">
<query xmlns="jabber:iq:roster"/>
</iq>
</body>
此响应可以在浏览器网络日志或 Openfire 的审核日志中看到。我只有在两个用户之间创建一个新的时才设法获得一个名册。
名册可以在数据库和管理控制台中找到,我们可以在其中看到其中两个用于该精确用户(atinel)。我们还检查了“ofRoster”表上的 SQL 查询是否为每个用户连接正确形成。
这是预期的响应:
<body xmlns='http://jabber.org/protocol/httpbind'>
<iq xmlns="jabber:client" type="result" id="1" to="atinel@domain/Chat (1452608051572)">
<query xmlns="jabber:iq:roster">
<item jid="team@domain" name="IT Team" subscription="both"/>
<item jid="userdemo@domain" name="Demo user" subscription="both"/>
</query>
</iq>
</body>
你有什么想法解决这个问题吗?也许我在配置 Openfire 时错过了一个属性?
我已经清除了名册(和所有其他)缓存并且没有任何改变,升级到 3.9.3 时没有更多结果。
谢谢。