3

严重的头痛,试图让 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 ,非常糟糕的是有两个地方的数据并且无法轻松备份mysql数据库
  2. 必须使用 rest 模块对数据库做一些事情,这本身就很好,但是我不清楚如何向每个好友列表添加 2 个用户。

尽管 ejabberd 似乎是最完整的开箱即用 xmpp 服务器,但我可能需要寻找另一台解决上述问题的服务器。我项目的这一部分一直很头疼,希望有人能澄清一下,提供一些关于如何处理的建议。

例如:

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

1 回答 1

2

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

于 2013-09-18T06:25:22.533 回答