Vous semblez avoir un problème avec la charge du serveur, donc je vais comparer les technologies pertinentes.
Ajax interrogation: Ceci est le plus simple. Vous faites une boucle setTimeout toutes les 5 secondes environ pour vérifier les nouveaux messages de chat ou pour définir un iframe à recharger. Lorsque vous postez un message, vous retournez également de nouveaux messages, et les choses ne devraient pas se dérégler. Le plus grand inconvénient de cette méthode est qu'il est peu probable que vous interrogiez avec une fréquence correspondant à la fréquence de publication des messages. Soit vous allez interroger trop rapidement, et vous ferez beaucoup de demandes supplémentaires, soit vous sonderez trop lentement et vous obtiendrez des blocs de messages à la fois au lieu de les obtenir en temps réel. C'est de loin la méthode la plus simple.
HTTP push Telle est l'idée que le serveur doit dire au client quand il y a de nouveaux messages, plutôt que le client tracasse sans cesse le serveur demandant s'il y a des nouvelles encore les. Imaginez le parent qui conduit et le gamin qui demande: «Sommes-nous encore là?», Vous pouvez simplement demander aux parents de dire à l'enfant quand ils arrivent.
Il y a plusieurs façons de simuler ceci et de le faire pour de vrai. Les WebSockets, que vous avez mentionnés, créent en fait un flux entre le client et le serveur et envoient des données en temps réel. C'est génial, et pour les 4 utilisateurs sur 10 qui ont un navigateur qui peut le faire, ils seront très excités.Tout le monde aura une page cassée. Pardon. Peut-être dans quelques années.
Vous pouvez également fausser la technologie push avec des choses comme à longue interrogation. L'idée est de demander au serveur s'il y a de nouveaux messages, et le serveur ne répond pas jusqu'à ce qu'un nouveau message apparaisse ou qu'une limite prédéfinie (30 secondes environ) ait été atteinte. Cela réduit au minimum le nombre de demandes, tout en utilisant des technologies Web connues, de sorte que la plupart des navigateurs fonctionneront avec. Vous aurez une simultanéité de connexion élevée, mais ils ne font rien, donc cela devrait avoir un coût de serveur trop élevé.
J'ai utilisé tout cela auparavant, mais j'ai fini par aller avec moi-même d'interrogation longue. Vous pouvez en savoir plus sur la façon de le faire ici: How do I implement basic "Long Polling"?
http://caniuse.com/#search=websocket en 2015, les websockets sont supportées par tout sauf sauf ie8 et ie9. : RÉ – Kzqai