Implementierung von Basic Long Polling: Eine einfache Anleitung
Long Polling ist eine Technik, die es dem Server ermöglicht, Daten an den Client zu übertragen, ohne dass dies erforderlich ist Client, der dies explizit anfordert. Dies ist in Szenarien nützlich, in denen der Server kontinuierlich Daten überwachen und den Client benachrichtigen muss, wenn neue Daten eintreffen.
Wie funktioniert Long Polling?
Bei Long Polling Der Client stellt eine Anfrage an den Server und wartet auf eine Antwort. Wenn keine Daten verfügbar sind, hält der Server die Anfrage auf unbestimmte Zeit offen, anstatt sie wie bei einer regulären HTTP-Anfrage zu schließen. Wenn neue Daten verfügbar sind, sendet der Server diese an den Client und schließt die Anfrage.
Long Polling in Apache und PHP implementieren
So implementieren Sie Long Polling mit Apache und PHP:
Clientseitige Implementierung mit Javascript
Zur Implementierung langer Abfragen auf dem Client Seite mit Javascript:
Beispielcode
PHP-Skript (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-Code (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>
Das obige ist der detaillierte Inhalt vonWie funktioniert Long Polling und wie kann es mit Apache, PHP und Javascript implementiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!