ホームページ > バックエンド開発 > PHPチュートリアル > Apache と JavaScript を使用して基本的なロング ポーリングを実装するにはどうすればよいですか?

Apache と JavaScript を使用して基本的なロング ポーリングを実装するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-30 12:16:13
オリジナル
900 人が閲覧しました

How to Implement Basic Long Polling Using Apache and JavaScript?

基本的なロング ポーリングの実装

ロング ポーリングは、接続を長期間開いたままにし、サーバーの更新が利用可能になったときの即時応答を容易にするポーリング手法です。その実装は非常に簡単です。

リクエスト ハンドラーとしての Apache

Apache を使用してリクエストを処理するには、msgsrv.php のような PHP スクリプトを作成します。簡単な例を次に示します。

// Simulate data availability after a random delay
sleep(rand(2, 10));
echo("Hi! Here's a random number: " . rand(1, 10));
ログイン後にコピー

このスクリプトを Apache で実行します。 Apache などの大量の Web サーバーを使用すると、ワーカー スレッドが枯渇する可能性があることに注意してください。

JavaScript スクリプトの使用

JavaScript では、long_poller.htm のようなスクリプトを使用してポーリング リクエストを開始できます。

<script>
  function waitForMsg() {
    $.ajax({
      type: "GET",
      url: "msgsrv.php",

      async: true,
      cache: false,
      timeout: 50000,

      success: function(data) {
        // Append the response to a div
        addmsg("new", data);
        // Continue polling after 1 second
        setTimeout(waitForMsg, 1000);
      },
      error: function(..., errorThrown) {
        // Append error to div
        addmsg("error", textStatus + " (" + errorThrown + ")");
        // Retry after 15 seconds
        setTimeout(waitForMsg, 15000);
      }
    });
  }

  $(document).ready(function() {
    waitForMsg(); // Start the initial request
  });
</script>
ログイン後にコピー

このスクリプトは継続的に msgsrv.php にリクエストを送信し、応答を div に表示します。過剰なリクエストを防ぐためにシンプルなレート リミッターを使用します。

ロング ポーリングの利点

ロング ポーリングは復元力とシンプルさを提供します。ネットワークが中断された場合、クライアントは自動的に再試行します。これは、インスタント メッセージングやチャット アプリケーションなど、サーバーからの即時更新を必要とするアプリケーションに適した選択肢です。

以上がApache と JavaScript を使用して基本的なロング ポーリングを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート