Comet en PHP : défis et solutions
La mise en œuvre du chat en temps réel à l'aide du backend de PHP peut poser certains défis, notamment en ce qui concerne la technologie Comet . Des inquiétudes ont été soulevées quant aux limitations de PHP à cet effet, car Comet nécessite des connexions persistantes à chaque client de navigateur.
Traditionnellement, l'utilisation du mod_php d'Apache signifiait que chaque client occuperait un enfant Apache à plein temps. Cela présente des problèmes d'évolutivité, car la gestion de nombreuses connexions simultanées peut devenir fastidieuse.
Bien que FastCGI puisse sembler être une solution potentielle, il ne parvient pas à résoudre le problème sous-jacent. Plus précisément, chaque requête entrante adressée à Apache occupe un thread de travail jusqu'à ce qu'elle se termine, ce qui peut représenter une période prolongée dans un contexte Comet.
De plus, PHP lui-même limite l'utilisation de Comet, car il lui manque les fonctionnalités nécessaires pour reprendre comet demande lorsque l’événement déclencheur se produit. Les continuations, qui offrent cette possibilité, ne sont pas prises en charge en PHP. La seule implémentation connue de cette fonctionnalité se trouve dans les serveurs Java comme Apache Tomcat.
Comme solution de contournement potentielle, il a été suggéré d'utiliser un équilibreur de charge (par exemple, HAProxy) pour distribuer les requêtes entrantes entre Apache et un serveur compatible Comet (par exemple, basé sur Java) qui peut gérer plus efficacement les connexions persistantes.
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!