WebSocket est un protocole basé sur TCP qui fournit un canal de communication en duplex intégral entre le client et le serveur, prenant en charge la transmission de données bidirectionnelle en temps réel. L'établissement de la connexion, la transmission des données et la fermeture de la connexion constituent le processus complet de WebSocket.
-
Établir une connexion :
- Le client lance une demande de prise de contact WebSocket. Le client envoie une requête HTTP contenant le spécial
Upgrade
En-tête indiquant la mise à niveau du protocole de HTTP vers WebSocket.
- Après avoir reçu la demande de prise de contact, le serveur effectue le traitement de vérification et de mise à niveau du protocole. Le serveur vérifie l'en-tête de la requête, vérifie s'il est conforme aux exigences du protocole WebSocket et effectue les mises à niveau de protocole nécessaires.
- Le serveur renvoie une réponse de poignée de main. Si la vérification de la poignée de main réussit, le serveur renvoie un message contenant
Upgrade
La réponse HTTP dans l'en-tête a un code d'état de 101 Switching Protocols, indiquant une mise à niveau réussie vers le protocole WebSocket.
- La connexion est établie. La connexion TCP entre le client et le serveur a été mise à niveau avec succès vers une connexion WebSocket, et les deux parties peuvent commencer la transmission de données bidirectionnelle en temps réel.
-
Transfert de données :
- Le client et le serveur peuvent utiliser la connexion WebSocket pour une communication bidirectionnelle.
- Le client et le serveur peuvent échanger des données en envoyant des messages WebSocket. Les messages peuvent être sous forme de texte ou binaire.
- Les messages peuvent être envoyés via
send()
méthode envoyée et passée
onmessage
Réception événementielle. Les clients et les serveurs peuvent utiliser ces méthodes et événements pour le transfert de données.
-
Fermer la connexion :
- Le client ou le serveur peut choisir de fermer la connexion WebSocket.
- La partie qui ferme la connexion envoie une image de fermeture spéciale à l'autre partie.
- Une fois que l'autre partie a reçu la trame de clôture, elle envoie une trame de clôture en réponse.
- Une fois que les deux parties ont reçu la trame de fermeture, la connexion WebSocket entre elles est fermée.
Vous devez faire attention aux points suivants :
- Une fois la connexion WebSocket établie, les messages peuvent être envoyés et reçus entre le client et le serveur à tout moment. Il n'est pas nécessaire d'établir une nouvelle connexion pour chaque requête comme HTTP.
- Les connexions WebSocket sont persistantes et peuvent maintenir la communication pendant une période plus longue.
- Les connexions WebSocket peuvent utiliser le mécanisme de battement de cœur pour détecter si la connexion est active.
- Les connexions WebSocket peuvent effectuer la compression et le cryptage des données pour améliorer les performances et la sécurité.
WebSocket fournit une communication bidirectionnelle en temps réel et convient aux applications nécessitant une transmission de données en temps réel, telles que les applications de chat et les jeux 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!