gpt4 book ai didi

ruby-on-rails - XMPP4r - 无法检索离线消息

转载 作者:数据小太阳 更新时间:2023-10-29 06:55:05 27 4
gpt4 key购买 nike

我正在尝试使用带有 openfire 服务器的 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。

我在这里错过了什么?


openfire是否提供房间聊天记录?有相应的 API 吗?

非常感谢任何帮助。而且我不太了解 openfire,因此非常感谢有关它的任何信息。

最佳答案

据我所知,只有当房间配置为持久 并设置为记录对话 时,您才能从该房间检索聊天记录。服务器返回历史记录的天数也有限制。过去的限制是 2 天,但现在有 a longstanding discussion and some patches修复该限制。

根据 another question因此,如果不首先通过单独的 XMMP 服务器代理历史记录,就不可能通过直接的 HTTP 请求检索历史记录,这是您尝试做的事情,还是您正在与 Openfire 服务器对话?

在结束时,看起来您想要的是可能的。 According to the XMPP spec.任何新用户在加入时都会收到房间的完整历史记录,前提是房间被配置为发送它。因此,只需以随机创建的用户身份加入正确配置的房间,即可为您提供所需的历史记录。

因此,根据这是否针对您运行的服务,或者您是否正在尝试存档其他人的服务器,您可能会谨慎行事。如果您设置服务器,它看起来是可能的,即使不是通过特定的 API 调用。如果服务不受您的控制,那么您可能就不走运了,因为历史记录可能根本不存在......

希望能对您有所帮助,即使我无法给出具体的解决方案。

服务发现

根据documentation for service discovery您的请求未完成:

<iq type='get'
from='romeo@montague.net/orchard'
to='plays.shakespeare.lit'
id='info1'>
<query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>

也许你应该 read up a bit关于如何使用 gem 与 XMPP 服务建立基本连接? This looks to be what you need开始。他们有很多示例,应该可以帮助您了解 gem 的细节......

关于ruby-on-rails - XMPP4r - 无法检索离线消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14041204/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com