bap*_*apu 8 ruby xmpp ruby-on-rails openfire xmpp4r
我正在尝试使用带有openfire服务器的ruby xmpp4r库获取openfire多用户组聊天记录.我能够构建请求,但我没有得到服务器回复.以下是发现请求
iqr = Iq.new(:get,"example.com")
iqr.add_namespace("http://jabber.org/protocol/disco#info")
client.send(iqr)
Run Code Online (Sandbox Code Playgroud)
这是框架的请求
<iq to='example.com' type='get' xmlns='http://jabber.org/protocol/disco#info'/>
Run Code Online (Sandbox Code Playgroud)
但我没有收到服务器回复.我跟着XEP-0160和XEP-0013.
我在这里错过了什么?
openfire是否提供聊天记录?那有api吗?
非常感谢任何帮助.而且我不太了解openfire,因此非常感谢任何关于它的信息.
据我所知,只有当房间配置为持久并设置为记录对话时,您才能从房间检索聊天历史记录。服务器返回历史记录的天数也有限制。过去的限制是 2 天,但经过长期讨论并发布了一些补丁来修复该限制。
根据这里的另一个问题,如果不首先通过单独的 XMMP 服务器代理历史记录,就不可能通过直接的 HTTP 请求检索历史记录,这就是您想要做的,或者您正在与 Openfire 服务器交谈?
最后看来你想要的都是可能的。根据 XMPP 规范。任何新用户在加入时都会收到房间的完整历史记录,前提是该房间已配置为发送该历史记录。因此,只需以随机创建的用户身份加入正确配置的房间即可为您提供所需的历史记录。
因此,根据这是否适用于您运行的服务,或者您是否试图存档其他人的服务器,您的里程可能会很谨慎。如果您设置了服务器,即使不是通过特定的 API 调用,它看起来也是可能的。如果该服务不受您的控制,那么您可能会运气不佳,因为历史记录可能根本不存在......
即使我不能给出具体的解决方案,希望对您有所帮助。
根据服务发现文档,您的请求不完整:
<iq type='get'
from='romeo@montague.net/orchard'
to='plays.shakespeare.lit'
id='info1'>
<query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>
Run Code Online (Sandbox Code Playgroud)
也许您应该阅读一些有关如何使用 gem 与 XMPP 服务建立基本连接的信息?这看起来就是您开始所需要的。他们有很多例子,应该可以帮助您了解宝石的具体细节......
| 归档时间: |
|
| 查看次数: |
720 次 |
| 最近记录: |