Mise en œuvre d'une interrogation longue simple
De nombreuses ressources décrivent le concept d'interrogation longue, mais les exemples pratiques de mise en œuvre restent insaisissables. Plongeons dans une version simplifiée sans nous appuyer sur des frameworks ou des configurations de serveur complexes.
Utiliser Apache et PHP pour la communication du serveur
Pour gérer les requêtes du serveur, Apache est adéquat. Le script PHP ci-dessous envoie une chaîne aléatoire après un intervalle aléatoire, simulant l'arrivée d'un message en temps réel. Parfois, il renvoie une erreur à des fins de démonstration.
<?php if (rand(1, 3) == 1) { header("HTTP/1.0 404 Not Found"); die(); } sleep(rand(2, 10)); echo("Hi! Have a random number: " . rand(1, 10)); ?>
Client JavaScript pour une interrogation longue
En JavaScript, l'observateur long demande continuellement le script ci-dessus et attend une réponse :
<script type="text/javascript"> function waitForMsg() { $.ajax({ type: "GET", url: "msgsrv.php", success: function(data) { // Display the message $("#messages").append("<div class='msg new'>" + data + "</div>"); // Recursively invoke waitForMsg setTimeout(waitForMsg, 1000); }, error: function() { // Display the error message and restart the process after 15 seconds $("#messages").append("<div class='msg error'>Error encountered</div>"); setTimeout(waitForMsg, 15000); } }); } $(document).ready(function() { waitForMsg(); }); </script>
Ce script vérifie en permanence les mises à jour du serveur et affiche les messages entrants. La gestion des erreurs est intégrée et l'interrogation longue tente de se reconnecter après un délai d'attente spécifié.
Atouts de l'interrogation longue
L'interrogation longue offre plusieurs avantages :
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!