L'interrogation longue est une technique d'interrogation qui maintient les connexions ouvertes pendant une période prolongée, facilitant une réponse instantanée lorsque des mises à jour du serveur sont disponibles. Sa mise en œuvre peut être assez simple.
Pour répondre aux requêtes à l'aide d'Apache, créez un script PHP tel que msgsrv.php. Voici un exemple simple :
// Simulate data availability after a random delay sleep(rand(2, 10)); echo("Hi! Here's a random number: " . rand(1, 10));
Exécutez ce script sur Apache. Notez que l'utilisation d'un serveur Web à volume élevé comme Apache peut entraîner l'épuisement des threads de travail.
En JavaScript, vous pouvez utiliser un script tel que long_poller.htm pour lancer des requêtes d'interrogation :
<script> function waitForMsg() { $.ajax({ type: "GET", url: "msgsrv.php", async: true, cache: false, timeout: 50000, success: function(data) { // Append the response to a div addmsg("new", data); // Continue polling after 1 second setTimeout(waitForMsg, 1000); }, error: function(..., errorThrown) { // Append error to div addmsg("error", textStatus + " (" + errorThrown + ")"); // Retry after 15 seconds setTimeout(waitForMsg, 15000); } }); } $(document).ready(function() { waitForMsg(); // Start the initial request }); </script>
Ce script envoie continuellement des requêtes à msgsrv.php, affichant les réponses dans un div. Il utilise un simple limiteur de débit pour éviter les demandes excessives.
Le Long Polling offre résilience et simplicité. En cas d'interruption du réseau, le client réessaye automatiquement. C'est un choix approprié pour les applications nécessitant des mises à jour immédiates de la part du serveur, telles que les applications de messagerie instantanée ou de chat.
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!