2012-04-16 4 views
1
ejabberd.cfgで
  • 我々はejabberd 2.1.10
  • からドメインのリストを挙げることができるが、私は「* .mysite.com」
  • 様ドメインを設定することができます方法はあります

答えて

1

ejabberdでは、ドメイン構成を明示的に行う必要があります。これは、ドメインが開始されると、モジュール構成に応じていくつかのサポートプロセスが開始され、エントリが内部ejabberdルートテーブルに挿入されるためです。 mod_mucは、マルチユーザチャットを処理するプロセスを開始し、 "mysite.com"ドメインで作業するときに "conference.mysite.com"としてルートテーブルに登録します。

{hosts、["* .mysite.com"]}。あなたのejabberd設定では、実際には動作しません。ejabberdは、本当にどのドメインを実際に起動してルートテーブルに設定する必要があるかを知る方法がないからです。

これに代わる方法は、実行時に追加のドメインをプロビジョニングすることです。これはejabberd 2.xでは使用できませんが、ejabberd 3の機能です。ejabberd_hostsモジュールの関数を呼び出すことで、実行時プロビジョニングを行うことができます。設定文字列を渡さずにホストを作成した場合、ホストは{hosts、[]}にリストされているかのように永続的なホスト(動的ではない)として作成されます。あなたの設定ファイルで。

これには2つの潜在的な欠点があります。 1.機能が存在するうちにチャットシステムに追加のドメインを作成するように通知する方法が必要です。おそらくカスタムモジュールが必要になります。 2. ejabberd 3はまだアルファにあります。それはかなりうまく動作しますが、私はまだ時々パッチを当てる必要があるバグを見つけます。

バグ修正が含まれているejabberd3のマイナーブランチを維持しています(リアルタイムプロビジョニングに関するものがほとんどです)。これはgithubでhttps://github.com/chatmongers/ejabberd/tree/prodにあります。