问题标签 [xmpp4r]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
913 浏览

ruby-on-rails - 无法使用 xmpp4r_facebook 发送 facebook 消息

我正在按照http://dalibornasevic.com/posts/35-how-to-send-private-messages-with-facebook-api中的说明向我的朋友发送消息,目前正在从命令行进行测试。以下是我正在使用的代码。当我打开我的 Facebook 帐户并检查发送的消息时,我没有看到我试图通过命令行发送的消息。我只是不明白我正在犯的错误。

0 投票
1 回答
741 浏览

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

我正在尝试使用带有 openfire 服务器的 ruby​​ xmpp4r 库获取 openfire 多用户群聊历史记录。我能够构建请求,但我没有得到服务器回复。以下是发现请求

这是框架的请求

但我没有收到服务器回复。我关注了 XEP-0160 和 XEP-0013。

我在这里想念什么?


openfire 是否提供房间聊天记录?有没有一个API?

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

0 投票
3 回答
552 浏览

ruby - Rails + XMPP 机器人在后台

我正在构建一个服务,它基本上允许用户与机器人聊天,然后机器人对用户发送的聊天进行一些奇怪的处理,并最终回复一些有意义的数据。基本上类似于 Aardvark 使用 (?) 工作的方式。

我的机器人正在工作,现在正在收听,我有一个单独的 Rails 应用程序,它将完成所有其他繁重的工作。这两个部分单独工作都很好,现在我被困在两者的接口上。我的想法是通过 Resque 将机器人(基本上是一个小的 ruby​​ 脚本)与 rails 应用程序接口 - 任何进入的东西都会进入队列,被拾取,然后将结果再次推回队列,然后脚本会回复结果。

这个接口怎么建立我不是很清楚:

  1. 我是否需要编写一个 rake 任务来启动/停止/重新加载机器人
  2. 如果我在没有 rake 的情况下运行它(假设是一个由 Monit 监控的独立进程),那么我如何与 Resque 交互或访问我的 rails 模型?

我知道这些可能是非常微不足道的问题,但我很难理解哪个效果更好,以及如何进行设置。

0 投票
1 回答
310 浏览

ruby-on-rails - 无法使用 ruby​​ xmpp4r 获取以前的群聊历史记录

我正在使用 ruby​​ xmpp4r 库通过 openfire 服务器实现多用户群聊应用程序。我已经成功在 openfire 服务器上创建了聊天室。如果用户使用 openfire 凭据加入聊天室,它不会返回以前的群聊历史记录,它只返回我正在使用的add_message_callback()方法的几条消息。

以下是 openfire 群聊历史设置:
** 显示整个聊天历史(向加入房间的用户显示整个聊天历史。)-- True

我在这里想念什么?有人有示例代码来获取以前的组历史吗?

0 投票
2 回答
481 浏览

ruby - xmpp4r 在登录时引发异常:“解析器线程中捕获的异常!(Jabber::ServerDisconnected)”

我尝试在 ruby​​ 中使用 xmpp4r 连接到我的 XMPP 服务器,我的代码非常简单,但我不知道为什么会出错。我可以成功使用 ichat 使用 chat@localhost 登录,也可以登录 5280/admin 网站。

错误是:

有任何想法吗?

谢谢!!

0 投票
1 回答
672 浏览

ruby-on-rails - XMPP (xmpp4r) 中的 Ruby 线程死锁

我正在实现一个 Google Talk 侦听器,它会向我更新我所有联系人列表项的存在情况。

代码工作正常,线程继续在一个 gmail 帐户上收听,但在出现几个联系人后给了我这个错误:

出现此错误的另一个帐户有更多具有不同状态的联系人。似乎无法弄清楚为什么会这样。任何帮助都会很棒。

谢谢。

0 投票
1 回答
1531 浏览

ruby - 无法从 xmpp4r 发送消息?

我正在尝试使用 xmpp4r 测试向一个 jid 帐户发送消息:

但我总是得到以下异常:

0 投票
1 回答
428 浏览

facebook - 在 xmpp4r_facebook 上进行身份验证时出现“IOError:关闭的流”错误

这很奇怪,因为它以前可以工作,现在不行了。如果是“未授权”错误,那会很容易,但是对于“IOError:关闭的流”,我很难过。

我认为这可能是由于令牌过期,但每当用户使用 Facebook 登录时,访问令牌都会更新。

由于遇到错误,我一步一步尝试,发现它是在调用 auth_sasl 方法时发生的。

谁能解释一下为什么会发生这种情况?其他人有相同或类似的问题吗?

编辑:我打开了调试,以下是我收到的“错误”消息。同样,似乎很多人都有同样的问题,但我找不到任何解决方案或解释该问题。大的 :(。

任何帮助将非常感激!

谢谢,

0 投票
1 回答
372 浏览

ruby - 如何使用 xmpp4r 检测给定 Jabber ID 的在线/离线状态?

在向他们发送消息之前知道给定联系人是否在线的正确 xmpp4r 方法是什么?

您可以发布示例 xmpp4r 代码来执行此操作吗?

这是我的用例:

  1. 如果在线联系,请发送:正常消息

  2. 否则,电子邮件联系

以下是我有工作代码的事情:

  1. 发送各种类型的消息

  2. 获取名册/联系人列表

  3. 注册回调以检测存在的变化

但是,我找不到直接解决这样的工作流程的地方:

  1. 遍历您名册中的每个 JID

  2. 如果 jid.is_online?== 真,发送即时消息

  3. 否则,发送电子邮件

我读到您应该向 JID 发送 :headline 类型的消息,如果失败,您就知道用户离线。在我的测试中,如果用户在线,他们将收到标题类型的消息。这是次优的,因为用户应该只接收要阅读的消息,而不是确定在线状态的噪音。

我已经读到,在登录时,您的所有联系人都会向您退回在线状态,并且该状态是他们在线的唯一指示 - 假设您尚未断开连接或在线更改收到。因此,您应该注册一个在线状态回调,记录最初 ping 您的用户,然后根据您正在运行的名册在线状态回调在列表中添加或删除。

如果这确实是这样做的方法:

  1. 我可以获得一些示例代码,说明如何在通过 xmpp4r 登录时收集所有“我在这里”的存在确认信息吗?

  2. 为什么,哦,为什么,xmpp 是这样设计的,为什么这比提供“is_online_and_available”方法更好?

0 投票
2 回答
580 浏览

ruby - 是否有用于更改 google-talk 状态的 API?

我想编写一个应用程序,它将:

  • 接收和发送电子邮件(我知道,我可以使用 RoR 使用 ActionMailer 来完成)
  • 与我的 Google+ 朋友聊天
  • 更改我的 GoogleTalk (gmail) 状态

所以,当我打开我的 gmail 界面时,我会在页面左侧看到我的联系人列表。我可以打开与此列表中的人的聊天,我可以更改状态和名称(靠近我的小 google+ 头像)。

当我写下身份或姓名时,我会在这张照片上添加特殊信息“Bogdan”

是否存在一些用于更改 google-talk 状态(特殊消息)的 Google API?我可以使用一些 RubyOnRails 宝石来做到这一点吗?谢谢。