ejabberd:管理添加/删除朋友

时间:2012-11-01 23:57:27

标签: ruby-on-rails ejabberd

严重的头痛,试图让ejabberd集成到现有的Rails应用程序中以支持聊天部分。希望任何人都能成功,这可以分享一些关于如何最好地解决问题的见解,因为目前这里有问题。

我的目标:

1。将所有数据存储在mysql数据库中以便于备份  为此,我已经使用mysql驱动程序为ejabberd设置了mysql用法到目前为止很好

2。轻松添加和删除用户彼此的名单(添加和删除朋友连接)为此我有安装模块rest和mod_admin_extra,以便能够从rails应用程序对ejabberd进行restfull调用。 ejabberd管理模块允许添加和删除用户但是(溢出:https://stackoverflow.com/a/5229902/355281)这位作者说它无法在mysql中存储数据Mnesia总是被mod_admin_extra使用

第3。暂时将用户添加到彼此列表中或者更喜欢有一些临时空间来添加2个用户,这样只要该组存在,他们就可以聊天。不知道如何处理这个

所有这些问题

  1. 似乎并非所有数据都可以存储在mysql中,因此数据粉碎了Mnesia& Mysql,在2个地方有数据并且无法轻松备份mysql数据库非常糟糕
  2. 我必须使用rest模块对数据库进行处理,但是如何在每个好友列表中添加2个用户是不明白的。
  3. 虽然ejabberd似乎是最完整的开箱即用的xmpp服务器,但我可能需要寻找解决上述问题的另一台服务器。我项目的这一部分令人头疼,希望有人能澄清,提供一些如何处理的建议。

    例如:

    • 如果facebook使用ejabberd他们是如何处理这些问题的?
    • 是否有一个干净的重写e​​jabberd来解决上述问题?也许商业xmpp服务器有不错的api和添加/删除用户并在1个中心位置存储数据的方法?

1 个答案:

答案 0 :(得分:2)

由于您已经在使用MySQL,因此您可以直接使用Rails / MySQL管理名册。 如果您不想直接在DB中执行此操作(这完全可以理解),您可以通过bosh(http://xmpp.org/extensions/xep-0206.html)连接到服务器,您可以在其中执行所有要求。有一个JS bosh客户端,您可以将其用作在Rails中实现它的指南,它被称为http://strophe.im/ 关于在两个地方拥有数据,你应该拥有(或能够拥有)MySQL中所有名册特定的表,另外你可以配置几乎所有持久的数据都在mysql上,我需要了解更多关于您的具体问题和配置,以便能够详细说明这一点。 eJabberd是高度可配置和可扩展的,根据我的经验(与eJabberd合作超过8年),您基本上可以通过这种方式实现任何类型的行为。