L'interrogation longue est une technique d'interrogation utilisée dans les applications Web pour permettre aux serveurs d'envoyer des données aux clients sans attendre des demandes explicites. La mise en œuvre d'une interrogation longue implique l'établissement d'une connexion persistante entre le client et le serveur.
Pour répondre aux requêtes d'interrogation longue, configurez Apache pour gérer les requêtes avec un délai d'attente long. Ceci peut être réalisé en définissant les directives KeepAliveTimeout et MaxKeepAliveRequests dans la configuration Apache.
Un script PHP simple qui implémente une interrogation longue peut être écrit comme suit :
<?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(); } ?>
Côté client, vous pouvez utiliser JavaScript pour établir une connexion persistante au script PHP et gérer les données entrantes. Ceci peut être réalisé en utilisant le code jQuery suivant :
$(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(); });
Cet exemple fournit une implémentation de base d'une interrogation longue à des fins de démonstration. Pour une implémentation robuste et évolutive, pensez à utiliser des frameworks comme Node.js ou Spring Boot.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!