Explication détaillée des exemples de développement PHP WebSocket : processus détaillé de mise en œuvre de fonctions spécifiques
1 Introduction
WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui permet l'établissement d'une connexion persistante entre les utilisateurs. Client et serveur. Transmission de données bidirectionnelle en temps réel. Dans le développement Web, WebSocket peut être utilisé pour implémenter certaines fonctions spécifiques, telles que le chat en temps réel, l'affichage de données en temps réel, etc. Cet article présentera en détail comment utiliser PHP pour développer des fonctions WebSocket et implémenter des fonctions spécifiques.
2. Configuration de l'environnement
Pour utiliser la fonction WebSocket en PHP, vous devez remplir les conditions suivantes :
pecl install swoole
(assurez-vous que pecl est installé) 3. Processus de développement
Voici le processus détaillé de mise en œuvre de fonctions spécifiques.
Créer un serveur WebSocket
Tout d'abord, nous devons créer un serveur WebSocket, écouter le port spécifié et gérer les connexions client, les messages et autres événements. Ceci peut être réalisé en utilisant la classe SwooleWebSocketServer fournie par l'extension Swoole. Voici un exemple simple :
<?php $server = new SwooleWebSocketServer('0.0.0.0', 8080); $server->on('open', function ($server, $request) { echo "new connection: {$request->fd} "; }); $server->on('message', function ($server, $frame) { $server->push($frame->fd, 'Server received: ' . $frame->data); }); $server->on('close', function ($server, $fd) { echo "connection closed: {$fd} "; }); $server->start();
Le code ci-dessus crée un serveur WebSocket en écoute sur le port 8080. Lorsqu'il y a une nouvelle connexion, l'ID de la nouvelle connexion sera imprimé ; lorsqu'un message est reçu, le message sera renvoyé au client ; lorsque la connexion est fermée, l'ID de la connexion fermée sera imprimé.
Gestion de fonctions spécifiques
La gestion de fonctions spécifiques sur le serveur WebSocket doit être développée en fonction des besoins métier. Voici un exemple d'implémentation d'une simple fonction de chat en temps réel :
<?php $server = new SwooleWebSocketServer('0.0.0.0', 8080); $connections = []; $server->on('open', function ($server, $request) use (&$connections) { $connections[$request->fd] = $request->fd; echo "new connection: {$request->fd} "; }); $server->on('message', function ($server, $frame) use (&$connections) { foreach ($connections as $fd) { $server->push($fd, 'User ' . $frame->fd . ' says: ' . $frame->data); } }); $server->on('close', function ($server, $fd) use (&$connections) { unset($connections[$fd]); echo "connection closed: {$fd} "; }); $server->start();
Le code ci-dessus stocke l'ID de connexion dans un tableau lorsqu'une connexion est ouverte, lorsqu'un message est reçu, le message est envoyé à toutes les connexions ; la connexion est fermée, supprimez l'ID correspondant du tableau.
4. Utilisez la fonction WebSocket
Une fois l'environnement de développement terminé, vous pouvez utiliser un navigateur ou d'autres outils pour vous connecter et envoyer des messages via WebSocket. Voici un exemple d'utilisation de JavaScript pour se connecter et envoyer des messages :
var ws = new WebSocket('ws://localhost:8080'); ws.onopen = function () { console.log('connected'); }; ws.onmessage = function (event) { console.log('received: ' + event.data); }; ws.onclose = function () { console.log('disconnected'); }; ws.send('Hello, WebSocket!');
Le code ci-dessus crée une connexion WebSocket et la gère en conséquence lorsque la connexion est ouverte, que les messages sont reçus et que la connexion est fermée. Enfin, envoyez le message au serveur via la méthode d'envoi.
5. Résumé
Cet article présente en détail le processus de développement de la fonction WebSocket à l'aide de PHP et prend la fonction de chat en temps réel comme exemple. WebSocket peut être utilisé pour implémenter certaines fonctions spécifiques et la transmission de données bidirectionnelle en temps réel dans le développement Web. J'espère que cet article pourra aider les lecteurs à comprendre et à appliquer la technologie WebSocket.
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!