问题标签 [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.
ruby - 使用 xmpp4r Ruby gem,如何同步发现联系人是否在线?
我是 XMPP 和 xmpp4r 库的新手,所以如果这明显记录在某处,请原谅我的菜鸟问题。
以同步方式找出给定 JID 是否在线的最直接方法是什么?(这样我就可以在 if 语句中调用类似 is_online?(jid) 的东西)
我的细节:
我正在编写一个 Sinatra 应用程序,当 Web 服务器上请求特定 url 时,它将尝试向用户发送消息,但如果该用户当前在线,它应该只尝试将消息发送给用户。弄清楚给定的 JID 是否在线是我的问题。
现在,我知道如果我连接并等待几秒钟让所有初始存在探测响应返回到名册助手,那么我可以从我的名册中检查任何这些存在并调用#online?在他们身上获得正确的价值。但是,我不知道何时发送了所有状态更新,因此存在竞争条件,#online?
如果我还没有收到状态探测响应,有时从我的名册中调用状态会返回 false。
所以,我目前的想法是,找出某人是否在线的最直接的方法是构建一个新的 Presence 类型的消息 :probe 并将其发送到我感兴趣的 JID。这就是我的做法现在:
现在,这适用于用户实际在线的情况,但是当用户离线时,看起来返回的存在探测消息被其他presence_callback
不知道如何处理它的处理程序捕获,而我的is_online?
函数永远不会完成返回值。
任何人都可以通过提供一个简单的示例 is_online 来帮助我吗?我可以调用的函数,或者指出我如何检测花名册何时完成获取所有初始存在更新的正确方向,然后再尝试检查存在#online?
ios - 如何获取 iPhone 聊天应用程序的端口号
我正在开发一个聊天应用程序。
但是现在只有谷歌可以聊天,因为我只知道谷歌的端口号。
可以看到,google 已将 5222 设置为端口号。
同样,我想为 yahoo、windows messenger 和其他流行网站设置端口号,我怎样才能得到所有这些?
(是这样的吗?“XMPP 是谷歌专用的”??)
ruby - XMPP4R 回调似乎不起作用
我正在使用 xmpp4r 并尝试掌握我希望稍后在我的 Rails 应用程序中实现的基本聊天功能。我在 Ruby Threads 上的基础知识仍然有点不稳定,因此我将不胜感激。
虽然我注册了回调,但我的 gmail 帐户没有收到回复。我可以发送消息,但我的 ruby 程序终止。为了防止它终止,我试图停止程序中的线程,但我似乎无法让它工作。
ruby - 使用 Ruby,我如何确认 XML 片段有效?
正如你们中的一些人所知,我正在为 StackOverflow 聊天系统进行 XMPP (Jabber) 集成,作为使用xmpp4r 包用 Ruby 编写的 XMPP 组件。
我正在努力解决一个问题(嗯,很多问题,但目前只有一个问题:-) 我正在从聊天中获取 JSON 提要并提取消息的 HTML。我正在使用Ruby TidyHTML 绑定将 HTML 从提供的 JSON 转换为 XHTML,以便我可以将其作为 XMPP 消息发送——因为 XMPP 消息只是 XML,将 HTML 转换为 XHTMl 应该使它成为有效的 XML,我可以只要坚持到<message>
节。
对于大多数消息,它工作得很好!
然而,对于其他消息,它完全窒息——XMPP 服务器关闭了流并且脚本停止了。(而小酒馆里的 rchern 和其他人很不高兴。好吧,也许不是不高兴,但他们嘲笑我。这让我很难过!)
我几乎可以肯定,由于某种原因,消息不是有效的 XML,因此 XMPP 服务器正在关闭连接,因为它在来自 Ruby 组件的 XML 流中遇到解析错误。以下是此类消息的示例:
(此消息恰好是对聊天室单框链接的引用)
这是Ruby给我的错误:
最后,我的问题!
鉴于将无效的 XML 发送到 XMPP 服务器让我感到厌烦,有什么方法可以使用 Ruby在将 XML 发送到 XMPP 服务器之前验证(最好是更正)XML?最有可能的是,纠正它是我为 Tidy 没有生成有效 XML 的每种情况编写额外代码的问题,但我至少希望阻止脚本崩溃。那么,如何在将 XML 发送到 XMPP 服务器之前对其进行验证呢?
ruby - 如何通过 XMPP (Jabber) 消息在 Web 上发送图像?
对于Stack Overflow 聊天的 XMPP 界面,我目前正在获取聊天消息的 HTML 并将其转换为有效的 XML,并将其设置为XMPP对象的html
子元素。message
在我的 Mac OS X jabber 客户端中,这很好用!这意味着当 SO 聊天中的用户发布单框图像时,该图像将显示在我的 XMPP 客户端(OS X 的 Adium)中:
但是我刚刚将 Adium 更新到了最新版本,显然他们认为我所做的事情是一个安全漏洞并且违反了 XMPP 规范,并改变了这种行为。他们的理由是 XMPP 不应该泄露你的 IP 地址,而通过 HTTP 获取图像会泄露我的 IP 地址。
所以现在聊天在 XMPP 上是无图像的。如何使图像在 XMPP 上工作?我的 XMPP 组件是否应该下载图像并将它们嵌入到<Message>
节中?图像可以通过 XMPP 服务器代理吗?或者这是不可能的?
xmpp - XMPP 传输到另一个协议
我想使用 jabber-transport 在我的应用程序中添加对 ICQ 的支持。我使用 xmpp4r ruby 的库。
我发现的所有内容都没有显示如何登录外部(icq)服务器以及如何发送消息。
您能否展示代码示例或文本说明如何执行此操作?(可能没有使用 xmpp4r 和 ruby,我只需要提示。)
ruby - Ruby 24/7 工作 XMPP 机器人
有人可以帮我解决这个问题吗?我想创建一个机器人,它接收一种语言的单词,查看数据库,获取翻译并将其发回。我如何理解这在共享主机上是不可能的,但在自己的服务器或 VDS 上是可能的。那么我是否需要使用 EventMachine 和 xmpp4r 等库来制作我的机器人?如果是,如何一次处理多个请求?
ruby-on-rails - 使用 Jabber 设置 Gtalk 状态
我正在使用 Jabber 与 gTalk 服务器进行通信。现在,我可以正常连接。此外,我可以发送/接收消息。但是,我无法将我的 gtalk 状态设置为忙碌但jabber.status
方法
你能建议我哪里出错了吗?谢谢。
multithreading - Ruby XMPP4R 机器人和线程 - 麻烦
我希望我的机器人在并行线程中发送和接收消息。我还希望我的机器人在收到用户的任何消息时将消息发送回用户。但现在他每 5 秒将其发回给用户。我知道这是因为我使用了“循环执行”但没有无限循环我不能使用回调。那么如何在并行线程中发送和接收消息呢?接收消息时如何克服我的“循环问题”?
ruby-on-rails - xmpp4r 和 Iq.new_register 用于带内注册
我一直在使用 xmpp4r 在此处的 SO 线程之后进行带内注册时遇到问题:
问题归结为,当我运行以下代码时,new_register 出现 NoMethodError 异常错误:
在 iq.rb 文件中的 xmpp4r gem 中,我可以看到 new_register 方法定义为:
但是当我检查类的方法时,我看不到 new_register 方法。IE
知道为什么我无法访问 'xmpp4r/iq' 中的 new_register 方法吗?