Dans les applications Web traditionnelles, des connexions courtes sont généralement utilisées pour communiquer. Chaque fois qu'un client envoie une demande au serveur, le serveur traite la demande et renvoie une réponse, puis se déconnecte immédiatement. Cependant, dans certains scénarios d'application spécifiques, tels que le chat en temps réel, les messages push, etc., les longues connexions peuvent offrir une meilleure expérience en temps réel et interactive. Cet article introduira comment réaliser une communication efficace à long terme en PHP, avec des exemples de code spécifiques.
Pour mettre en œuvre une communication à long terme dans PHP, il existe deux principales technologies communes: le sondage et WebSocket.
Le sondage est une simple technologie de communication à long terme. Son principe de base est que le client envoie constamment des demandes au serveur. Après avoir reçu la demande, le serveur vérifiera s'il existe de nouvelles données qui doivent être poussées au client. S'il y en a, renvoyez les données immédiatement; Sinon, gardez la connexion jusqu'à ce que de nouvelles données soient disponibles. L'inconvénient du sondage est qu'il peut générer un grand nombre de demandes non valides, ce qui augmente le fardeau du serveur.
Voici un exemple de code de sondage simple:
<?php // Côté serveur $data = "Hello, World!"; // Données à pousser while (true) { $newData = checkNewData(); // Vérifiez les nouvelles données if ($newData) { echo $newData; flush(); // Envoyez une réponse immédiatement break; } usleep(1000); // Dormir1millisecondes,éviterCPUOccupation trop élevée } // Client set_time_limit(0); // Annuler la limite de délai d'expiration while (true) { $response = sendRequest(); // Envoyer une demande if ($response) { echo $response; } usleep(1000); // Dormir1millisecondes } ?>
WebSocket est un protocole de communication à long terme plus efficace et plus puissant qui prend en charge la communication complète-duplex, permettant aux clients et serveurs de se envoyer des messages sans attendre les demandes. Cela rend WebSocket très adapté aux scénarios d'application avec des exigences élevées en temps réel, telles que les jeux en ligne, le chat en temps réel, la poussée de stock, etc.
Voici un exemple de code WebSocket simple:
<?php // Côté serveur $server = new WebSocketServer("localhost", 8000); // créerWebSocketObjet serveur while (true) { $client = $server-> accepter(); // accepte la connexion client while (true) { $ message = $ client-> recevoir (); // reçoit des messages clients if ($ message) { // Process Client Messages // $ data = processMessage ($ message); // poussez les données traitées au client // $ client-> Send ($ data); } } $ client-> close (); // Fermer la connexion du client} // client $ socket = new WebSocketClient ("ws: // localhost: 8000"); // Créer un objet client WebSocket while (true) { $ message = $ socket-> recevoir (); // reçoit le message du serveur if ($ message) { // Process Server Messages // $ data = processMessage ($ message); // Affichez les données traitées aux données utilisateur // echo $; } // Envoyez un message au serveur // $ socket-> Send ($ message); } ?>
Cet article décrit deux façons courantes de mettre en œuvre une communication à long terme dans PHP: le sondage et WebSocket. Chaque méthode présente ses avantages et ses inconvénients, et le choix de la bonne solution nécessite des compromis en fonction des besoins d'application spécifiques. Espérons que grâce à ces exemples de codes, vous pouvez mieux comprendre et appliquer une technologie de communication connectée à long terme pour obtenir une interaction de données en temps réel.