我试图获得开放火多用户组聊天历史,使用ruby xmpp4r库与openfire服务器。我能够框架请求,但我没有得到服务器的答复。下面是发现请求
iqr = Iq.new(:get,"example.com")
iqr.add_namespace("http://jabber.org/protocol/disco#info")
client.send(iqr)这就是被陷害的请求
<iq to='example.com' type='get' xmlns='http://jabber.org/protocol/disco#info'/>但我没有得到服务器回复。我跟着XEP-0160和XEP-0013。
我在这里错过了什么?
提供房间聊天记录吗?有api吗?
任何帮助都是非常感谢的。我不太理解开火游戏,所以我们非常感谢你提供的任何相关信息。。
发布于 2013-02-03 17:55:14
据我所知,只有将房间配置为、持久化并设置为日志会话,您才能从房间中检索聊天历史。服务器返回历史记录的时间也有限制。这个限制过去是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>也许您应该使用读一读?这看起来是你所需要的来了解如何与XMPP服务建立基本连接。他们有很多的例子,可以帮助你更好地了解宝石的细节.
https://stackoverflow.com/questions/14041204
复制相似问题