Heim >Backend-Entwicklung >PHP-Tutorial >Wie implementiert man einfache lange Abfragen mit Apache und PHP?

Wie implementiert man einfache lange Abfragen mit Apache und PHP?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-31 02:16:09396Durchsuche

How to Implement Simple Long Polling Using Apache and PHP?

Implementierung von Simple Long Polling

Viele Ressourcen beschreiben das Konzept von Long Polling, aber praktische Implementierungsbeispiele bleiben schwer zu finden. Lassen Sie uns in eine vereinfachte Version eintauchen, ohne auf komplexe Frameworks oder Serverkonfigurationen angewiesen zu sein.

Verwendung von Apache und PHP für die Serverkommunikation

Um Serveranfragen zu verarbeiten, ist Apache ausreichend. Das folgende PHP-Skript sendet nach einem zufälligen Intervall eine zufällige Zeichenfolge und simuliert so den Nachrichteneingang in Echtzeit. Gelegentlich wird zu Demonstrationszwecken ein Fehler zurückgegeben.

<?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-Client für Long Polling

In JavaScript fordert der Long Poller kontinuierlich das obige Skript an und wartet darauf eine Antwort:

<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>

Dieses Skript sucht kontinuierlich nach Server-Updates und zeigt eingehende Nachrichten an. Die Fehlerbehandlung ist integriert und der Long Poller versucht, nach einer bestimmten Zeitüberschreitung die Verbindung wiederherzustellen.

Stärken von Long Polling

Long Polling bietet mehrere Vorteile:

  • Belastbarkeit: Im Falle eines Verlusts der Internetverbindung kann sich der Client erholen und die Verbindung wiederherstellen automatisch.
  • Skalierbarkeit: Ein eigenständiger Server kann mehrere gleichzeitige lange Abfrageanfragen verarbeiten, ohne die Leistung der Website zu beeinträchtigen.
  • Einfachheit: Der Code, beide Server -seitig und clientseitig, ist unkompliziert und einfach zu implementieren.

Das obige ist der detaillierte Inhalt vonWie implementiert man einfache lange Abfragen mit Apache und PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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