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 人のユーザーを追加するための一時的な部屋を用意して、このグループが存在する限りチャットできるようにします。これにアプローチする方法がわからない
このすべての問題
- すべてのデータを mysql に保存できるとは限らないため、データを粉砕する Mnesia & Mysql 、2 つの場所にデータがあり、mysql データベースを簡単にバックアップできないのは非常に悪い
- 残りのモジュールを使用してデータベースに何かを行う必要がありますが、それ自体は問題ありませんが、各フレンドリストに2人のユーザーを追加する方法は私には不明です。
ejabberd はすぐに使える最も完全な xmpp サーバーのようですが、上記の問題に取り組む別のサーバーを探す必要があるかもしれません。私のプロジェクトのこの部分は大きな頭痛の種でした.
例えば:
- Facebook が ejabberd を使用した場合、これらの問題にどのように対処したのでしょうか?
- 上記の問題に取り組む ejabberd のきれいな書き直しはありますか? おそらくまともなAPIを備えた商用xmppサーバーで、ユーザーを追加/削除し、データを1つの中央の場所に保存する方法はありますか?