ホームページ >バックエンド開発 >PHPチュートリアル >Apache と PHP を使用して単純なロングポーリングを実装するにはどうすればよいですか?
単純なロング ポーリングの実装
多くのリソースでロング ポーリングの概念が説明されていますが、実際の実装例は依然としてわかりにくいです。複雑なフレームワークやサーバー構成に依存しない、簡素化されたバージョンを詳しく見てみましょう。
サーバー通信に Apache と PHP を使用する
サーバー リクエストを処理するには、Apache で十分です。以下の PHP スクリプトは、ランダムな間隔の後にランダムな文字列を送信し、リアルタイムのメッセージ到着をシミュレートします。場合によっては、デモンストレーションの目的でエラーが返されることがあります。
<?php if (rand(1, 3) == 1) { header("HTTP/1.0 404 Not Found"); die(); } sleep(rand(2, 10)); echo("Hi! Have a random number: " . rand(1, 10)); ?>
ロング ポーリング用の JavaScript クライアント
JavaScript では、ロング ポーラーは上記のスクリプトを継続的にリクエストし、待機します。応答:
<script type="text/javascript"> function waitForMsg() { $.ajax({ type: "GET", url: "msgsrv.php", success: function(data) { // Display the message $("#messages").append("<div class='msg new'>" + data + "</div>"); // Recursively invoke waitForMsg setTimeout(waitForMsg, 1000); }, error: function() { // Display the error message and restart the process after 15 seconds $("#messages").append("<div class='msg error'>Error encountered</div>"); setTimeout(waitForMsg, 15000); } }); } $(document).ready(function() { waitForMsg(); }); </script>
このスクリプトはサーバーの更新を継続的にチェックし、受信したものを表示しますメッセージ。エラー処理が組み込まれており、ロング ポーラーは指定されたタイムアウト期間後に再接続を試行します。
ロング ポーリングの強み
ロング ポーラーにはいくつかの利点があります。
以上がApache と PHP を使用して単純なロングポーリングを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。