Socket.io fournit une communication bidirectionnelle en temps réel basée sur des événements, de sorte que l'article suivant présente principalement des informations pertinentes sur socket.io, et présente principalement les connaissances de base de l'apprentissage de socket.io. Les amis qui en ont besoin peuvent s'y référer. Jetons un coup d'oeil ensemble.
Avant-propos
La transmission de données en temps réel entre le Web et le serveur est une exigence très importante, mais au plus tôt ne peut se faire que via la mise en œuvre du sondage AJAX. Avant l'introduction du standard WebSocket, l'interrogation AJAX était la seule méthode réalisable (elle était également possible via le navigateur Flash, mais nous n'en discuterons pas ici). Le principe du sondage AJAX est de définir une minuterie pour synchroniser les données du serveur via AJAX à intervalles réguliers. Cette méthode implique des retards et impose une lourde charge au serveur. Ce n'est qu'en 2011 que l'IETF a standardisé WebSocket, un protocole d'envoi et de réception de données basé sur des sockets TCP. De nos jours, tous les principaux navigateurs prennent en charge WebSocket.
socket.io sépare la partie transmission de données pour former engine.io Engine.io encapsule les sondages WebSocket et AJAX pour former un ensemble d'API et protège les détails. différences et problèmes de compatibilité, et réalise des données bidirectionnelles entre navigateurs et appareils.
socket.io n'est pas nécessaire pour engine.io Vous pouvez également implémenter votre propre moteur.io en server.bind
liant
application.
Affichage de l'analyse des données en temps réel (rapports, journaux)
Messagerie instantanée, chat,
Transmission de flux binaire (image, musique, vidéo)
Édition collaborative multi-personnes
Push de message instantané
Technologies similaires
Sondage AJAX : Sondage AJAX basé sur XMLHttpRequest
Interrogation longue AJAX : Semblable à l'interrogation, le serveur ne renvoie pas de réponse après que le client l'a demandé jusqu'à ce que des données doivent être transmises au client. Une fois les données transmises, le client lance une nouvelle demande. L'inconvénient est que des en-têtes HTTP supplémentaires doivent être transmis, et cela nécessite également un travail supplémentaire pour empêcher la demande de répondre.
Flux HTTP : Semblable à l'interrogation longue AJAX, la réponse du serveur apportera l'en-tête HTTP : Transfer-Encoding: chunked
Après avoir renvoyé les données au client, le client n'a pas besoin d'initier un. nouvelle demande, l'inconvénient est que les données entre chaque morceau sont difficiles à identifier et à traiter.
Plug-ins : similaires à Flash et Silverlight, car les plug-ins sont de plus en plus rejetés par les navigateurs et les utilisateurs grand public
Le Voici différents angles Analyser chaque technologie
Unidirectionnel/bidirectionnel
Unidirectionnel : sondage AJAX, sondage long AJAX, HTTP streaming
Bidirectionnel : WebSocket, Plug-in
Délai
WebSocket Plug-in> WebSocket : prend essentiellement en charge le Le flux HTTP, l'interrogation longue AJAX, l'interrogation AJAX : prend essentiellement en charge Plug-in : fondamentalement non pris en charge WebSocket < 🎜> Résumé socket.io encapsule WebSocket Si WebSocket n'est pas pris en charge, il fournit également une interrogation AJAX dégradée, qui est entièrement fonctionnelle, avec élégance. conçu, est le meilleur moyen de développer une communication bidirectionnelle en temps réel. 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!