Mise en œuvre de l'interrogation longue de base : un guide simple
L'interrogation longue est une technique utilisée pour permettre au serveur de transmettre des données au client sans que le client le demande explicitement. Ceci est utile dans les scénarios où le serveur doit surveiller en permanence les données et avertir le client lorsque de nouvelles données arrivent.
Comment fonctionne l'interrogation longue ?
Dans l'interrogation longue, le client fait une requête au serveur et attend une réponse. Si aucune donnée n'est disponible, le serveur maintient la requête ouverte indéfiniment, au lieu de la fermer comme dans une requête HTTP classique. Lorsque de nouvelles données deviennent disponibles, le serveur les envoie au client et ferme la requête.
Implémentation d'une interrogation longue dans Apache et PHP
Pour implémenter une interrogation longue à l'aide d'Apache et PHP :
Implémentation côté client à l'aide de Javascript
Pour implémenter une interrogation longue côté client à l'aide Javascript :
Exemple de code
Script PHP (msgsrv.php):
if (rand(1, 3) == 1) { // Fake an error header("HTTP/1.0 404 Not Found"); die(); } // Send a string after a random number of seconds (2-10) sleep(rand(2, 10)); echo("Hi! Have a random number: " . rand(1, 10));
Code Javascript (long_poller.htm):
<script type="text/javascript"> function waitForMsg() { $.ajax({ type: "GET", url: "msgsrv.php", async: true, cache: false, timeout: 50000, success: function (data) { // Add response to a .msg div (with the "new" class) addmsg("new", data); setTimeout(waitForMsg, 1000); // Request next message after 1 second }, error: function (XMLHttpRequest, textStatus, errorThrown) { // Add error message addmsg("error", textStatus + " (" + errorThrown + ")"); setTimeout(waitForMsg, 15000); // Retry after 15 seconds } }); }; $(document).ready(function () { waitForMsg(); // Start the initial request }); </script>
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!