2011-08-11 5 views
1

誰かがajax-pushが何であるか説明できますか?私が理解していることは、HTTP接続を長時間開いたままにして、必要に応じて再接続することです。それはチャットシステムでたくさん使われているようです。ajax-pushとは何ですか?それはいくつかのサーバーでそれを使用するための警告はありますか?

Javaでajax-pushを使用しているときは、NIO-connetorsまたはgrizzle serlvet apiで何かを使用することが重要ですか?繰り返しますが、私はちょうどそれを正確に調べています。

+0

また、[Push Technology](http://en.wikipedia.org/wiki/Push_technology)._ [およびGoogle] –

答えて

4

通常のAJAX(プルと呼んでください)では、サーバーに何かを求めてすぐに取得します。サーバーからデータを取得したい場合は、これは問題ありません今度はです。しかし、サーバ上で何かが起きた場合、サーバがにクライアントにそのイベントをプッシュしたいのですが?

これは、技術的には、と呼ばれる長いポーリングを使用して実装されます。ブラウザはHTTP接続を開き、応答を待ちます。サーバー側で面白いことがない限り、それは待っています。しかし、何かが起こると、サーバーは応答を送信し、クライアントはすぐにを受け取ります。。これは、サーバーに数秒ごとに問い合わせる通常のポーリングに比べて大きな利点です。多くのトラフィックを生成し、依然として顕著な遅延が発生します。

このアプローチの唯一の問題は、保留中のHTTP接続の数です。古いスクールのJavaサーブレットコンテナは、1接続あたりのスレッド数が制限されているため、このような量の接続を処理することはできません。 HTTPスレッドは何もしていませんが(システムの他の部分が起きて応答を出すのを待っています)、メモリを占有します。

  • TomcatのNIO connectors

  • Atmosphere Ajaxのプッシュ/

  • サーブレット3.0 @Async(ほとんどのポータブル)彗星ライブラリ

  • コンテナ:

    は、しかし、今日の解決策がたくさんありますServlet 3ではなく、特定の機能です。可能であれば0を上位とみなすべきである。

関連する問題