我正在构建一个用Ruby编写的基于Web的聊天应用程序。我想提供使用XMPP客户端连接到此聊天服务器的功能。所以我正在寻找一个能够处理真正的XMPP服务器的库,我可以将其与现有的Ruby代码绑定(或者使用Redis之间的代码)。但是,我很难找到服务器库(尽管我可以找到许多库作为客户端,它们使用服务器或与服务器交互)。我也不是很熟悉XMPP,所以我可能会问错了。您知道我可以使用的XMPP服务器库吗?
答案 0 :(得分:5)
XMPP服务器库通常没有多大意义,因为XMPP服务器(例如HTTP服务器)作为单独的独立长期进程运行。您通常不会将它们嵌入到您的应用程序中。
XMPP甚至比HTTP更进一步 - 是 HTTP服务器库,允许您监听端口,等待请求并发送响应。 XMPP在这方面完全不同 - XMPP会话是长期存在的,需要不断关注。使用XMPP服务器库,您的应用程序大部分时间都会在该库中使用 - 此时,为什么它不像运行单独的进程那么好?
我知道这是一个诱人的想法,但是开发了一个XMPP服务器并考虑到了这一点(人们已经在你之前请求了)我刚刚结束它没有多大意义(即使它在技术上 可能)。
许多XMPP服务器允许自定义插件与其他系统集成,如果您需要(例如Vines),则Ruby中有服务器。
答案 1 :(得分:4)
尝试XMPP4R
例如 - 连接和身份验证:
require "xmpp4r"
robot = Jabber::Client::new(Jabber::JID::new("sample@xmpp.ru"))
robot.connect
robot.auth("password")
发送消息:
message = Jabber::Message::new("recipient@xmpp.ru", "Hi there!")
message.set_type(:chat)
robot.send message
但是这个库在Windows下有些不稳定,但在Linux中却很棒。
在Ruby下使用XMPP4R进行XMPP服务器实现 - http://code.google.com/p/xmpp-rserve/
修改强>
也许这就是你想要的。看起来像适合服务器使用的库 - https://github.com/sprsquish/blather
在XMPP官方网页上找到它 - http://xmpp.org/xmpp-software/libraries/