Heim > Backend-Entwicklung > PHP-Tutorial > Wie funktioniert Long Polling und wie kann es mit Apache, PHP und Javascript implementiert werden?

Wie funktioniert Long Polling und wie kann es mit Apache, PHP und Javascript implementiert werden?

Linda Hamilton
Freigeben: 2024-12-26 16:46:15
Original
575 Leute haben es durchsucht

How Does Long Polling Work and How Can It Be Implemented Using Apache, PHP, and Javascript?

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:

  1. Erstellen Sie ein PHP-Skript (msgsrv.php): Dies Das Skript verarbeitet die Anfrage des Clients und sendet eine Antwort, wenn Daten verfügbar sind.
  2. Apache für die Bereitstellung des PHP-Skripts einrichten:Konfigurieren Sie Ihren Apache-Server für die Verarbeitung von Anfragen an msgsrv.php.

Clientseitige Implementierung mit Javascript

Zur Implementierung langer Abfragen auf dem Client Seite mit Javascript:

  1. Erstellen Sie eine erste Anfrage an den Server:Der Client stellt eine Anfrage an msgsrv.php und wartet auf eine Antwort.
  2. Erfolgreiche Antworten verarbeiten: Wenn eine Antwort eingeht, hängen Sie sie an ein bestimmtes Element auf der Seite an und lösen Sie nach einem eine neue Anfrage aus Verzögerung.
  3. Fehler behandeln: Wenn die Anfrage fehlschlägt, zeigen Sie eine Fehlermeldung an und versuchen Sie es nach einer längeren Verzögerung erneut.

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));
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage