Heim >Backend-Entwicklung >PHP-Tutorial >Wie funktioniert Long Polling in Webanwendungen?
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.
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.
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(); } ?>
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(); });
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!