1

クライアント (ブラウザー) が更新を要求することなく、サーバーからクライアントにデータをプッシュしようとしています。

私のアプリケーションは JSF2.0 (JSP を使用) と JBoss サーバー上の RF3.3 に基づいています。

どうすればそれを達成できるかを理解するために、多数のリンクを調べました。ロング ポーリング、ピギーバック、サーバー サイド ポーリングなどの用語はすべて理解できます。

雰囲気のあるCOMETを使用して実行できると思いますが(JBossには適用できないと思います)、同じかどうかはわかりません。主な問題は、ネット上で同じことを行うコードチュートリアルやデモコードを入手できなかったため、出発点をほとんど考えられないことです.

さらに、目的の機能を実現するためにどこから始めるべきか、また途中で何が必要になるかについて、出発点自体があまり明確ではありません。

誰でもこれについて私を案内できますか.私はこのトピックでかなり迷っています.

一般的な使用例のシナリオは、ユーザーがアプリケーション内の Web ページを閲覧していて、ユーザーが同じリクエストを発行することなく、突然通知を発生させたり、ページの値を更新したりする必要がある場合です。

4

2 に答える 2

1

RF 4.0.X の使用に慣れている場合は、ajax プッシュの使用方法を示す例があります。ここで例を見つけることができます

http://anonsvn.jboss.org/repos/richfaces/branches/4.0.0.CR1/examples/push-demo/src/main/webapp/chat.xhtml
http://anonsvn.jboss.org/repos/richfaces/branches/4.0.0.CR1/examples/

RF 3.3 に固執する必要がある場合は、出発点として関連する例をここで見つけることができます。

http://anonsvn.jboss.org/repos/richfaces/branches/community/3.3.X/samples/
于 2012-04-07T16:31:50.347 に答える
0

RF4.2 ではこれが非常に簡単になりますが、RichFaces が必要ない場合は、jQuery を介して特別なサーブレットにポーリングすることも同様に機能することがわかりました。

// Javascript part
jQuery.ajax({
    url : "/poll?sessionKey=" + sessionKey,
    dataType : "text",
    success : function(data) {
        // ... Do your thing to depending on the contents of data.
    },
    error : function(xhr, ajaxOptions, thrownError) {
        // ... Oops, something went wrong.
    }
});

// Server part
@WebServlet(urlPatterns = "/poll")
public class pollServlet implements Servlet {
}

ポーリングは非常に安価で、大きな影響を与えることなく数秒ごとに実行できます。追加の利点の 1 つは、ブラウザー ウィンドウがまだ開いているかどうかを監視できることです。

于 2012-04-07T20:38:30.407 に答える