2009-06-19 12 views
2

JSJaCejabberdを使用してライブチャットを作成しています。すべてのサイト訪問者にアカウント「ゲスト」が与えられていることを除いて、すべて機能しています。 2人の訪問者が同時にライブチャットしようとすると、応答が混乱したり、最初のユーザーがログアウトしたりします。ランダムな名前のJabber自動ログイン

ランダムにゲスト名を設定することはできますが、その名前が登録されているかどうかを確認したり、事前に登録されていないことを確認する必要があります。私はランダムなリソース名に各ログインを割り当てようとしましたが、これはまだ会話をマージしました。

要するに、複数の匿名ログインがライブチャットアカウントで個々の会話を開始できるようにする最も簡単な方法を探しています。プライマリライブチャットアカウントがチャット中にライブチャットが別のユーザーにラウンドロビンする可能性がある場合は、さらに優れています(ただしオプション)。

解決策はWebクライアントまたはサーバーベースで、私は両方を制御しているので気にしません(ejabberdはさまざまなモジュールをサポートしています)。ところで

、私は自動登録、登録しようとJSJaC simpleclientデモ戻りアカウント:これは私がカスタムクライアントまたはサーバで無視するか無効にすることができます何かあれば

An error occured: 
Code: 409 
Type: cancel 
Condition: conflict 

私はまだ確立していませんセットアップ。私はちょうどこのエラーを検出し、自動登録せずに再試行することができますが、私はより良い/より簡単なオプションを聞きたいと思います。

答えて

2

ejabberdサーバーでanonymous login modeを有効にしてみてください。次に、クライアントアカウントを登録する必要はありません。ランダムなユーザー名とパスワードを選択するだけです。

+0

ありがとう、私はそのようなことが存在するかどうかはわかりませんでした。ちょうど私が何をしているかのように聞こえる。 – SpliFF

+0

奇妙なことに、私は手紙に指示に従っていますが(私は401の許可されていないエラーが出ます)、動作しません。私はserverfaultまたはejabberdで質問しますが、この答えはまだ受け入れられます。 – SpliFF

0

ejabberdの匿名モードが機能しない場合は、それぞれに対してGUIDを作成してみてくださいユーザーのベース名を取得し、その場でユーザーを登録するだけです。未使用の古いアカウントをデータベースから削除する定期的なスクリプトが必要になります。

+0

これは実際に私が最後にやったことですが、私はguidよりも短い名前を使用しました。あなたに答えを与えるのは遅すぎる。実際には匿名モードが動作していましたが、ユーザーが選択したGUIDの代わりにGUIDのような名前を割り当てていました。私は[email protected]/helpのようなユーザーがchat window realestateを詰まらせるのを望まなかったので、オペレータはPDA/Iphoneを使用している可能性があります。 – SpliFF

1

プロジェクトでも同様の問題が発生しました。アカ​​ウントの作成や競合を起こすことなくユーザーがログインできるようにするため、名前が衝突する可能性があるため自動登録はできません。最終的に私たちはejabberdで匿名ログインを選択しました - 匿名ログインと動的アカウント作成が可能になりましたが、アカウントはシステムに残っていないと思います(接続が開いている間のみ生きています)。サーバーはユーザーのランダムIDを生成します。

GUID JIDの問題は、私はあなたがejabberd で外部認証を使用することができ、私は同じような状況に思うよNicknames

Set up SASL

Ejabberd Support Page - SASL

2

を使用して解決することができる可能性があります:私は匿名ユーザーがサーバーにログインできるようにしたいが、特別なユーザーのなかには匿名の仕事のためにログインすることもできます... ejabberdの認証ハンドラとしてPHPスクリプトを書くことにしました。 その後、anon_ * で始まる名前のすべてのログインを受け入れ、データベースに対して他のユーザーを認証します。

+0

ejabberdでは、データベースログインと匿名ログインの両方を使用することができます。いくつかのauth_methodを参照することができます。その場合、注文は重要です。最初にデータベース認証を使用し、次に匿名認証をフォールバックとして使用します。 –