基本的なロング ポーリングの実装: 簡単なガイド
ロング ポーリングは、サーバーがクライアントにデータをプッシュできるようにするために使用される手法です。クライアントが明示的にそれを要求します。これは、サーバーが継続的にデータを監視し、新しいデータが到着したときにクライアントに通知する必要があるシナリオで役立ちます。
ロング ポーリングはどのように機能しますか?
ロング ポーリングでは、クライアントはサーバーにリクエストを送信し、応答を待ちます。利用可能なデータがない場合、サーバーは通常の HTTP リクエストのようにリクエストを閉じるのではなく、リクエストを無期限にオープンしたままにします。新しいデータが利用可能になると、サーバーはそれをクライアントに送信し、リクエストを閉じます。
Apache と PHP でのロング ポーリングの実装
Apache と PHP を使用してロング ポーリングを実装するには、 PHP:
クライアント側へのリクエストを処理します。 Javascript を使用した実装
JavaScript を使用してクライアント側でロングポーリングを実装するには:
例コード
PHP スクリプト (msgsrv.php):
if (rand(1, 3) == 1) { // Fake an error header("HTTP/1.0 404 Not Found"); die(); } // Send a string after a random number of seconds (2-10) sleep(rand(2, 10)); echo("Hi! Have a random number: " . rand(1, 10));
JavaScript コード (long_poller.htm):
<script type="text/javascript"> function waitForMsg() { $.ajax({ type: "GET", url: "msgsrv.php", async: true, cache: false, timeout: 50000, success: function (data) { // Add response to a .msg div (with the "new" class) addmsg("new", data); setTimeout(waitForMsg, 1000); // Request next message after 1 second }, error: function (XMLHttpRequest, textStatus, errorThrown) { // Add error message addmsg("error", textStatus + " (" + errorThrown + ")"); setTimeout(waitForMsg, 15000); // Retry after 15 seconds } }); }; $(document).ready(function () { waitForMsg(); // Start the initial request }); </script>
以上がロングポーリングはどのように機能し、Apache、PHP、JavaScript を使用して実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。