Position actuelle: Accueil> Derniers articles> PHP WebSocket Development Exemple: Tutoriel détaillé sur l'implémentation de la fonction de communication en temps réel

PHP WebSocket Development Exemple: Tutoriel détaillé sur l'implémentation de la fonction de communication en temps réel

M66 2025-06-16

1. Introduction

WebSocket est un protocole de communication complet basé sur le protocole TCP, qui permet à l'établissement d'une connexion persistante entre le client et le serveur de réaliser la transmission de données bidirectionnelle en temps réel. Dans le développement Web, WebSocket peut être utilisé pour implémenter le chat en temps réel, l'affichage de données et d'autres fonctions. Cet article présentera en détail comment utiliser PHP pour développer des fonctions WebSocket et démontrer le processus d'implémentation à travers des exemples spécifiques.

2. Configuration de l'environnement

Lorsque vous utilisez la fonction WebSocket dans PHP, les conditions suivantes doivent être remplies:

  1. Version PHP> = 5.3
  2. Installez l'extension Swoole pour PHP: PECL Installer Swoole (Assurez-vous que PECL est installé)
  3. Spécifiez le numéro de port du serveur WebSocket (port couramment utilisé 8080, ou d'autres ports inoccupés)

3. Processus de développement

Ce qui suit est un processus détaillé pour implémenter des 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. Il peut être mis en œuvre à l'aide de la classe SwoolewebsocketServer fournie par l'extension Swoole. Voici un exemple simple:

<?php
$server = new SwooleWebSocketServer('0.0.0.0', 8080);

$server->sur (&#39;open&#39;, fonction ($ server, $ request) {
    echo "Nouvelle connexion: {$ request-> fd} \ n";
});

$ server-> sur (&#39;message&#39;, fonction ($ server, $ frame) {
    $ server-> push ($ frame-> fd, "Server reçu: {$ frame-> data}");
});

$ server-> sur (&#39;close&#39;, fonction ($ server, $ fd) {
    Echo "Connexion fermée: {$ fd} \ n";
});

$ server-> start ();

Le code ci-dessus crée un serveur WebSocket qui écoute le port 8080. Chaque fois qu'il y a une nouvelle connexion, l'ID de connexion est imprimé; Lorsqu'un message est reçu, le message est renvoyé au client; Lorsque la connexion est fermée, l'ID de connexion est imprimé.

Gérer des fonctions spécifiques

Lors de la gestion des fonctions spécifiques sur un serveur WebSocket, le développement peut être effectué en fonction des besoins de l'entreprise. L'exemple suivant implémente une fonction de chat en direct simple:

<?php
$server = new SwooleWebSocketServer('0.0.0.0', 8080);
$connections = [];

$server->sur (&#39;open&#39;, fonction ($ serveur, $ request) use (& $ connections) {
    $ connexions [$ request-> fd] = $ request-> fd;
    echo "Nouvelle connexion: {$ request-> fd} \ n";
});

$ server-> sur (&#39;message&#39;, fonction ($ server, $ frame) use (& $ connections) {
    foreach ($ connexions comme $ fd) {
        $ server-> push ($ fd, "user {$ frame-> fd} dit: {$ frame-> data}");
    }
});

$ serveur-> sur (&#39;close&#39;, fonction ($ server, $ fd) use (& $ connections) {
    Unset ($ Connections [$ fd]);
    Echo "Connexion fermée: {$ fd} \ n";
});

$ server-> start ();

Dans ce code, chaque fois que la connexion est activée, l'ID de la connexion sera stocké dans le tableau; Lorsque le message sera reçu, le message sera envoyé à tous les clients connectés; Lorsque la connexion est fermée, l'ID de connexion correspondant sera supprimé du tableau.

4. Utilisez la fonction WebSocket

Une fois l'environnement de développement terminé, la connexion WebSocket et l'envoi de messages peuvent être effectués via un navigateur ou d'autres outils. Voici un exemple de connexion et d'envoi de messages à l'aide de JavaScript:

var ws = new WebSocket (&#39;ws: // localhost: 8080&#39;);

ws.onopen = function () {
    console.log («connecté»);
};

ws.onMessage = fonction (événement) {
    console.log (&#39;reçue:&#39; + event.data);
};

ws.Onclose = function () {
    console.log («déconnecté»);
};

Ws.Send («Bonjour, WebSocket!»);

Ce code crée une connexion WebSocket et gère des événements tels que l'ouverture de la connexion, la réception de messages, la fermeture de la connexion, etc. via la méthode d'envoi, un message peut être envoyé au serveur.

5. Résumé

Cet article présente en détail comment utiliser PHP pour développer des fonctions WebSocket et les explique en pratique en utilisant les fonctions de chat en direct comme exemple. Grâce à la technologie WebSocket, les développeurs peuvent réaliser la transmission de données bidirectionnelle en temps réel pour améliorer l'expérience utilisateur. J'espère que cet article peut aider les lecteurs à comprendre et à appliquer la technologie PHP WebSocket.