Heim >Backend-Entwicklung >PHP-Tutorial >Wie funktioniert Long Polling in Webanwendungen?

Wie funktioniert Long Polling in Webanwendungen?

Susan Sarandon
Susan SarandonOriginal
2024-12-28 15:09:17240Durchsuche

How Does Long Polling Work in Web Applications?

Long Polling verstehen und implementieren

Long Polling ist eine Polling-Technik, die in Webanwendungen verwendet wird, um Servern das Senden von Daten an Clients zu ermöglichen, ohne auf explizite Anfragen warten zu müssen. Die Implementierung von Long Polling erfordert den Aufbau einer dauerhaften Verbindung zwischen dem Client und dem Server.

Apache-Konfiguration für Long Polling

Um Anfragen für Long Polling zu bedienen, konfigurieren Sie Apache so, dass Anfragen mit einem langen Timeout verarbeitet werden. Dies kann durch Festlegen der Direktiven KeepAliveTimeout und MaxKeepAliveRequests in der Apache-Konfiguration erreicht werden.

PHP-Skript für lange Abfragen

Ein einfaches PHP-Skript, das lange Abfragen implementiert, kann wie folgt geschrieben werden:

<?php
while (true) {
    // Sleep for a random duration to simulate data availability
    sleep(rand(2, 10));

    // Generate a random string to represent new data
    $data = "Message: " . rand(1, 10);

    // Send the data to the client
    echo $data;
    flush();
}
?>

JavaScript für lange Umfragen

Auf der Client-Seite können Sie dies tun Verwenden Sie JavaScript, um eine dauerhafte Verbindung zum PHP-Skript herzustellen und eingehende Daten zu verarbeiten. Dies kann mit dem folgenden jQuery-Code erreicht werden:

$(function() {
    function waitForMsg() {
        $.ajax({
            url: "msgsrv.php",
            async: true,
            timeout: 50000,
            success: function(data) {
                // Append the received data to a DOM element
                $("#messages").append("<div>" + data + "</div>");

                // Recursively call the waitForMsg function to continue polling
                waitForMsg();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                // Handle the error and try again after a delay
                waitForMsg();
            }
        });
    }
    waitForMsg();
});

Hinweis

Dieses Beispiel stellt eine grundlegende Implementierung von Long Polling zu Demonstrationszwecken bereit. Erwägen Sie für eine robuste und skalierbare Implementierung die Verwendung von Frameworks wie Node.js oder Spring Boot.

Das obige ist der detaillierte Inhalt vonWie funktioniert Long Polling in Webanwendungen?. 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