Tag: xmpp

Rails 3.2的Jabber / XMPP gem

我正在为rails 3.2寻找一个可靠且有效的XMPPgem 网中有数百个,但大部分已过时或为alpha。 你能推荐我一个用于rails 3.2吗?

将XMPP集成到Rails中需要什么?

这是我到目前为止所拥有的。 XMPP服务器 – Ejabberd或Vine Rails中的XMPP库 – Blather 客户端上的XMPP库 – Strophe.js 这是我需要将聊天function集成到我的rails应用程序中吗? 编辑:来自Vine的创造者。 “使用ejabberd可能更安全,因为它是比藤蔓更全function的服务器。”

使用Ruby处理谷歌谈话消息

是否有任何库允许使用Ruby处理谷歌谈话消息?

使用Ruby,我如何确认XML snippit是否有效?

正如你们中的一些人所知,我正在为StackOverflow聊天系统进行XMPP(Jabber)集成 ,作为使用xmpp4r软件包在Ruby中编写的XMPP组件。 我正在努力解决一个问题(好吧,很多问题,但目前只有一个问题 :-)我正在从聊天中获取JSON提要并提取消息的HTML。 我正在使用Ruby TidyHTML绑定将HTML从JSON转换为XHTML,因此我可以将其作为XMPP消息发送 – 因为XMPP消息只是XML,将HTML转换为XHTMl应该使它成为有效的XML,我可以只需坚持节即可。 对于大多数消息 ,它工作得很好! 但是对于其他消息,它完全窒息 – XMPP服务器关闭流并且脚本停止运行。 (和酒馆里的其他人一起感到不安。好吧,也许不会沮丧 ,但他们会嘲笑我。这让我感到难过!) 我几乎可以肯定,由于某些原因,消息是有效的XML,因此XMPP服务器正在关闭连接,因为它遇到来自Ruby组件的XML流中的解析错误。 以下是一个此类消息的示例: <div class="onebox ob-message"><a class="roomname" href="https://stackoverflow.com/transcript/message/263372"><span title="2010-11-04 19:20:23Z">1 hour ago</span></a>, by <span class="user-name">Fosco</span> <br/><div class="quote"><div class="room-mini"><div class="room-mini-header"><h3><img class="small-site-logo" title="Gaming" alt="Gaming" width="16" height="16" src="http://sstatic.net/gaming/img/favicon.ico" />&nbsp;<span class="room-name"><a href="http://chat.stackexchange.com/rooms/28/minecraft-talk">Minecraft Talk</a></span></h3><div class="room-mini-description">Everything Minecraft, including classic and survival mode</div></div><div class="room-current-user-count" title="current users">9</div><div class="mspark" style="height:25px;width:205px"> […]

如何在EventMachine实现中捕获exception?

我对这个post有类似的问题,我尝试了给定的解决方案,但无济于事。 我的项目是一个Ruby bot,它使用Blather库连接到Jabber服务器。 问题是,当服务器出现问题并且Blather生成exception时,整个程序退出,我没有机会捕获exception。 这是一些显示问题的简单代码。 在localhost上没有运行Jabber服务器,因此Blather客户端抛出exception。 我的印象是EM.error_handler {}能够拦截它,但我从未看到**** ERROR消息,程序就停止了。 🙁 #!/usr/bin/env ruby require ‘rubygems’ require ‘blather/client/client’ EM.run do EM.error_handler { puts ” **** ERROR ” } Blather::Stream::Client.start( Class.new { }.new, ‘echo@127.0.0.1’, ‘echo’) end 我认为问题是Blather也使用EventMachine并且可能正在调用EM.stop,这会导致外部EM实例停止。