WebSocket Chat

Cette interface simple vous permet de saisir un message et de l'envoyer au serveur WebSocket. Tous les clients connectés recevront le message et l'afficheront.

Étape 5 : tester la connexion WebSocket

  1. Démarrez votre serveur WebSocket en exécutant php start_server.php.
  2. Ouvrez index.html dans un navigateur.
  3. Ouvrez la même page dans un autre navigateur ou onglet pour simuler plusieurs clients.

Lorsque vous envoyez un message depuis un client, il apparaîtra dans les navigateurs de tous les clients connectés.


Avantages de l'utilisation de WebSockets en PHP


Cas d'utilisation des WebSockets en PHP


Conclusion

WebSockets fournit une solution puissante pour la communication en duplex intégral en temps réel entre le client et le serveur, idéale pour les systèmes de chat, les notifications en direct et d'autres applications en temps réel. En utilisant PHP avec des bibliothèques comme Ratchet, vous pouvez facilement configurer un serveur WebSocket et l'intégrer dans vos applications pour un meilleur engagement et une meilleure réactivité des utilisateurs.

","image":"http://www.luping.net/uploads/20240930/172769436566fa861d5b103.jpg","datePublished":"2024-11-06T15:21:16+08:00","dateModified":"2024-11-06T15:21:16+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comprendre les WebSockets en PHP

Comprendre les WebSockets en PHP

Publié le 2024-11-06
Parcourir:493

Understanding WebSockets in PHP

Les WebSockets fournissent un canal de communication en duplex intégral en temps réel sur une seule connexion TCP. Contrairement à HTTP, où le client envoie des requêtes au serveur et attend une réponse, les WebSockets permettent une communication continue entre le client et le serveur sans avoir besoin de plusieurs requêtes. Ceci est idéal pour les applications qui nécessitent des mises à jour en temps réel, telles que les applications de chat, les notifications en direct et les jeux en ligne.

Dans ce guide, nous explorerons les WebSockets, leur fonctionnement et comment les implémenter en PHP.


Que sont les WebSockets ?

Les WebSockets permettent une communication interactive entre un navigateur Web (ou tout autre client) et un serveur. Voici les aspects clés des WebSockets :

  1. Communication full-duplex : le client et le serveur peuvent s'envoyer des messages à tout moment, ce qui rend la connexion plus efficace que l'interrogation HTTP traditionnelle.
  2. Connexion persistante : une fois établie, la connexion WebSocket reste ouverte jusqu'à ce qu'elle soit explicitement fermée par le client ou le serveur.
  3. Faible latence : étant donné que les WebSockets éliminent le besoin d'ouvrir de nouvelles connexions pour chaque requête, ils réduisent la latence, ce qui les rend idéaux pour la communication en temps réel.

Comment fonctionnent les WebSockets

  1. Handshake : La communication démarre par une requête HTTP. Le client envoie une requête HTTP avec un en-tête Upgrade pour basculer la connexion de HTTP vers WebSockets.
  2. Connexion établie : une fois que le serveur reconnaît la prise de contact, la connexion est établie et le client et le serveur peuvent commencer à envoyer et à recevoir des messages.
  3. Messagerie : les données sont transmises via des trames légères et peuvent être envoyées dans les deux sens sans la surcharge des en-têtes HTTP.
  4. Résiliation de la connexion : le client ou le serveur peut mettre fin à la connexion.

Quand utiliser les WebSockets

  • Applications en temps réel : telles que les applications de chat, les notifications en direct et l'édition collaborative.
  • Jeux : pour les jeux en ligne multijoueurs où des mises à jour fréquentes sont nécessaires.
  • Flux en direct : diffusion en continu des cours des actions, des résultats sportifs ou des données en temps réel à partir d'appareils IoT.
  • Outils de collaboration : pour les applications telles que Google Docs où plusieurs utilisateurs doivent voir les mises à jour en temps réel.

Implémentation de WebSockets en PHP

Pour implémenter WebSockets en PHP, vous pouvez utiliser une bibliothèque telle que Ratchet, une bibliothèque PHP spécialement conçue pour la communication bidirectionnelle en temps réel à l'aide de WebSockets.


Implémentation étape par étape de WebSocket à l'aide de Ratchet

Étape 1 : Installer Ratchet via Composer

Tout d'abord, vous devez installer la bibliothèque Ratchet. En supposant que Composer soit installé, vous pouvez exécuter la commande suivante :

composer require cboden/ratchet

Étape 2 : Créer un serveur WebSocket en PHP

Créons un simple serveur WebSocket qui gérera les connexions et les messages.

  1. Créez une classe de serveur WebSocket dans WebSocketServer.php :
clients = new \SplObjectStorage;
    }

    // Called when a new client connects
    public function onOpen(ConnectionInterface $conn) {
        $this->clients->attach($conn);
        echo "New connection: ({$conn->resourceId})\n";
    }

    // Called when a client sends a message
    public function onMessage(ConnectionInterface $from, $msg) {
        echo "New message: $msg\n";

        foreach ($this->clients as $client) {
            if ($from !== $client) {
                // Send the message to everyone except the sender
                $client->send($msg);
            }
        }
    }

    // Called when a connection is closed
    public function onClose(ConnectionInterface $conn) {
        $this->clients->detach($conn);
        echo "Connection closed: ({$conn->resourceId})\n";
    }

    // Called if an error occurs
    public function onError(ConnectionInterface $conn, \Exception $e) {
        echo "Error: {$e->getMessage()}\n";
        $conn->close();
    }
}

Cette classe implémente MessageComponentInterface de Ratchet, qui définit des méthodes de gestion des nouvelles connexions, des messages entrants, des connexions fermées et des erreurs.

Étape 3 : Exécuter le serveur WebSocket

Créez un nouveau script PHP pour démarrer le serveur WebSocket, par exemple start_server.php.

run();

Vous pouvez démarrer le serveur en exécutant ce script :

php start_server.php

Le serveur fonctionnera désormais sur ws://localhost:8080.

Étape 4 : Créer un frontend pour se connecter au serveur WebSocket

Maintenant, créons un fichier HTML avec jQuery et JavaScript pour nous connecter au serveur WebSocket.

  1. Créez un fichier HTML index.html :


    WebSocket Chat

WebSocket Chat

Cette interface simple vous permet de saisir un message et de l'envoyer au serveur WebSocket. Tous les clients connectés recevront le message et l'afficheront.

Étape 5 : tester la connexion WebSocket

  1. Démarrez votre serveur WebSocket en exécutant php start_server.php.
  2. Ouvrez index.html dans un navigateur.
  3. Ouvrez la même page dans un autre navigateur ou onglet pour simuler plusieurs clients.

Lorsque vous envoyez un message depuis un client, il apparaîtra dans les navigateurs de tous les clients connectés.


Avantages de l'utilisation de WebSockets en PHP

  • Mises à jour en temps réel : les WebSockets fournissent des mises à jour en temps réel sans la surcharge de l'interrogation HTTP.
  • Latence inférieure : étant donné que la connexion reste ouverte, les messages peuvent être envoyés immédiatement, réduisant ainsi la latence.
  • Communication bidirectionnelle : le serveur et le client peuvent s'envoyer des messages simultanément, contrairement au HTTP traditionnel où la communication est initiée par le client.

Cas d'utilisation des WebSockets en PHP

  • Applications de chat : les WebSockets sont parfaits pour les applications de chat en temps réel où les messages doivent être envoyés instantanément à tous les utilisateurs.
  • Notifications en direct : pour les applications qui doivent envoyer des notifications en direct (par exemple, les réseaux sociaux, les cours des actions).
  • Outils de collaboration en temps réel : les WebSockets permettent une collaboration en temps réel, telle que l'édition de documents en direct.
  • Jeux en ligne : les jeux en ligne multijoueurs bénéficient de la communication à faible latence des WebSockets.

Conclusion

WebSockets fournit une solution puissante pour la communication en duplex intégral en temps réel entre le client et le serveur, idéale pour les systèmes de chat, les notifications en direct et d'autres applications en temps réel. En utilisant PHP avec des bibliothèques comme Ratchet, vous pouvez facilement configurer un serveur WebSocket et l'intégrer dans vos applications pour un meilleur engagement et une meilleure réactivité des utilisateurs.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/mdarifulhaque/understanding-websockets-in-php-2cli?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3