ロング ポーリングは、接続を長期間開いたままにし、サーバーの更新が利用可能になったときの即時応答を容易にするポーリング手法です。その実装は非常に簡単です。
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 では、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 サイトの他の関連記事を参照してください。