Maison > développement back-end > tutoriel php > Explication détaillée des exemples de développement PHP WebSocket : processus détaillé d'implémentation de fonctions spécifiques

Explication détaillée des exemples de développement PHP WebSocket : processus détaillé d'implémentation de fonctions spécifiques

WBOY
Libérer: 2023-09-11 17:52:02
original
1081 Les gens l'ont consulté

PHP WebSocket开发实例详解:如何实现特定功能的详细过程

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 :

  1. Version PHP >= 5.3
  2. Installez l'extension Swoole de PHP : pecl install swoole (assurez-vous que pecl est installé)
  3. Spécifiez le numéro de port du serveur WebSocket (utilisez généralement 8080 ou d'autres ports inoccupés)

3. Processus de développement
Voici le processus détaillé de mise en œuvre de fonctions spécifiques.

  1. 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();
    Copier après la connexion

    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é.

  2. 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();
    Copier après la connexion

    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!');
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal