2012-04-22 22 views
3

私はwebappにいくつかの機能を追加しようとしています。これは、Facebookのものと同じような "live user-to-user"チャットとリアルタイム通知システムです。JSF + AJAXプッシュ:リアルタイムチャット/通知システム

のは、このシナリオを考えてみましょう: 私たちは、二人のユーザーを持っているBとAとの間にチャットウィンドウがBのブラウザで開かれている場合、AとB

Aは、Bの

にメッセージを送信それを更新して、Bのブラウザに新しいメッセージを表示します。 ウィンドウが開いていない場合は、Bのブラウザに通知などを表示する必要があります。

チャットウィンドウとしてPrimeFacesダイアログを、通知を表示するためにPrimeFaces NotificationBarを使用すると、どうすればできますか?

Glassfishで動作しないため、PrimeFacesのプッシュは使用できません。

私はICEPushについて知っていますが、これを行うには良い方法だと思われますが、「レンダリンググループ」については私がそれを試していないことを止めました。 ICEPushがグループについて話している場合、どのようにSINGLEクライアントだけを更新できますか?

クライアントごとに新しいグループを作成する必要がありますか?

次のようなもの: Bは、AがBにメッセージを送信してチャットを開いたときに更新される「BwithA」グループと、チャットウィンドウが閉じられたときに更新される「notificationsB」グループを持っていますか?

このようにグループを使用しても、Bに更新が必要であることを伝えなければならないため、Bはダイアログを更新する必要があるかどうかわからないnotificationBar!

説明が簡単ではないので、質問が明確であることを願っています。事前に

感謝:)

+1

これは代わりにjQueryを使ってみて、JSF + PrimeFacesには適していません。以下はサンプルです:http://code.google.com/p/jquery-stream/wiki/ChatExample –

+0

リンクありがとうございます。 JSFライブラリを扱うことができないと言っていますか? ICEFacesやRichFacesはありませんか?私は実際に私のプロジェクトでjQueryを使うことができないからです! – StepTNT

+0

私が言っていることは、プッシュ/ポーリングのコンポーネントはリアルタイムチャットのためのチャットアプリケーションを処理するのにはあまり適していないということです。代わりに、軽いものを使うべきですし、jqueryはそれを提供します。とにかく、JSF + RichFacesプッシュとポーリングを使用してみることができます(投票サンプルhttp://richfaces-showcase.appspot.com/richfaces/component-sample.jsfを確認してください)。しかし、リフレッシュ時間はできるだけ速くはありません考えてください) –

答えて

1

は、私はプロのJavaプログラマがあなたの問題を解決する方法を知りませんが、私はチャットを作成したいとき、私はに標準Primefacesにリモートコマンドの構成要素およびコールバックパラメータを使用しましたチャットを作成し、サーバーからユーザーに新しいメッセージを送信します。

ウェブページにp:remoteCommandコンポーネントがあります。コンポーネントの目的は、アクションリスナーが呼び出されたときに特定のユーザーから最新のメッセージを取得することです。 「コールバックパラメータ」を介して、新しいメッセージがサーバーからjavascript関数(コンポーネントのoncompleteイベントのハンドラ)に渡されます。この機能では、メッセージがあるかどうかを確認し、チャットボックスに追加します。

詳細については、How to create JSF chat with AJAX

UPD参照:上記溶液が古いです。今私はチャットを実装するためにJAX-RS WebサービスまたはWebソケットを使用します。また、リアルタイムデータストリーミングのための商用ソリューションがあります:PubNubプッシャーなど

+0

基本的には、投票。毎回新しいリクエストを作成するのを避けるためのプッシュバージョンが欲しかった! – StepTNT