Web サイトに既にユーザーが登録されており、Web サイトを介して自分のフレンドリストにフレンドを追加および削除する方法があるとします。
今、プレゼンス情報をリアルタイムで取得するためにejabberd xmppサーバーを使用したいのですが、名簿用の新しいデータベースを作成するためにxmppサーバーを使用したくありません。ejabberd サーバーと Web サイト サーバーの両方でデータの重複を避けるために ejabberd を構成する方法はありますか?
カスタム ejabberd モジュールを作成したくない場合は、SQL データベースから名簿をロードするように ejabberd を構成できます。すべての名簿の変更が webapp によって行われる場合、ejabberd の観点から見ると、DB は「読み取り専用」であり、ejabberd が期待するスキーマを持つが、既に持っているデータ テーブルを使用する SQL ビューを作成できます。テーブル定義https://github.com/processone/ejabberd/blob/master/src/odbc/mysql.sqlを参照してください 。「rosterusers」および「rostergroups」テーブルが必要です。このアプローチにはいくつかの制限があることに注意してください。アプリケーションが ejabberd に通知しない限り、名簿の変更は接続ユーザーにすぐには表示されないため、ejabberd はクライアントに通知できます。このためには、とにかくカスタム コードを記述し、名簿のプッシュについて学習する必要があります。http://xmpp.org/rfcs/rfc3921.html#名簿
または、独自のカスタム モジュールを記述して、名簿データにアクセスすることもできます。