2013-11-05 7 views
5

を使用して: Asmack/openfire How do I keep a user permanently in groupchat roomOpenFire - 常設グループチャット、この質問からまずPubSubの

私は、グループ内の永続的なユーザーを維持するためにMUCを使用することはできません、彼らは自動的にグループを残しておきますと、彼らが来た後、再度参加できることを読んでオンラインでもう一度、そのコンセプトはIRCのようなもので、ここで質問されたようなものです - >http://community.igniterealtime.org/thread/48020

その後、私はpubsubの使い方について読んだので、私はpubsubに関するいくつかの調査を行いました。私が得たものは、ユーザーがオフラインでもメッセージフローパブリッシャからサブスクライバへの方向性に似ています(読み取り専用)。

だから、私は、パブリッシャとサブスクライバの両方になることのpubsubを使用し、すべてのメンバーを設定することができ、グループチャットアプリケーションを作成したい場合は?または他の解決策がありますか?またはpubsubとMUCの理解が間違っていますか? 私の目標は、whatsappやblackberry messengerグループのようなグループチャットを作成することです。

ありがとうございました。

+0

あなたがしようとしていることを100%保証していません。ユーザーのリストを保持し、オンライン状態を表示しようとしていますか? –

+0

@MarkStraleyいいえ、そのような必要はないので、ユーザーがグループを作成できるメッセンジャーアプリを作成したいと思います。グループメンバーは常にグループに属し、メッセージは常にグループに配信されます。ユーザーはグループメッセージを読んでみたいです。グループチャットを開く必要がありますが、私が何を意味するのか理解していますか? –

+0

もし私があなたを正しく理解するなら、ロースターを見てください。ロスターを使用してグループを作成できます。私は名簿のグループとpubsubのいくつかの組み合わせがあなたが何をしているかもしれないと思う。私の最初の考えはMUCではないでしょう。名簿に登録/承認されると、削除されるまで残ります。 –

答えて

3

あなたはopenfireの次のコードを変更することにより、MUCでのグループチャット内のユーザーが永続的なものにすることができます。

File : src/java/org/jivesoftware/openfire/muc/spi/LocalMUCUser.java 

change line 547-550: 

// TODO Consider that different nodes can be creating and processing this presence at the same time (when 

remote node went down) 

removeRole(group); 

role.getChatRoom().leaveRoom(role); 

TO: 

// TODO Consider that different nodes can be creating and processing this presence at the same time (when 

remote node went down) 

// TODO Dont remove user from group when they go offline. 

//removeRole(group); 

//role.getChatRoom().leaveRoom(role); 
+0

あなたはこれをテストしています。私がmucからユーザーを削除すると、うまくいくでしょうか?返信してください。前もって感謝します。 – jagdish

+0

ユーザーが接続を失った場合、ユーザーはグループから離脱しません。あなたが明示的にそれをやっているのであれば、それはうまくいきません。 –

+0

素早く応答してくれてありがとう。私はアプリと同じにしたい。私はあなたのコードを試してみましたが、期待どおりに動作しません。他の方法でも可能ですか? – jagdish

関連する問題