Table des matières
Swoole et WebSocket
Étape 1 : Préparation de l'environnement du projet
Étape 2 : Démarrez le serveur WebSocket
Étape 3 : Interaction des données
Le serveur envoie des données au client
Le client envoie des données au serveur
Exemple de code complet
Maison cadre php Swoole Comment utiliser Swoole pour implémenter l'interaction serveur et client WebSocket

Comment utiliser Swoole pour implémenter l'interaction serveur et client WebSocket

Nov 07, 2023 pm 02:15 PM
websocket 交互 swoole

Comment utiliser Swoole pour implémenter linteraction serveur et client WebSocket

WebSocket est devenu un protocole de communication en temps réel couramment utilisé dans les applications Web modernes. Le développement d'un serveur WebSocket à l'aide de PHP nécessite généralement l'utilisation d'extensions telles que Swoole, car il prend en charge la programmation asynchrone, la gestion des processus, le mappage de la mémoire et d'autres fonctionnalités liées à WebSocket. Dans cet article, nous expliquerons comment utiliser Swoole pour implémenter l'interaction serveur-client WebSocket et fournirons quelques exemples de code spécifiques.

Swoole et WebSocket

Swoole est une excellente extension PHP qui offre un très bon support pour implémenter des serveurs WebSocket. Swoole prend en charge la programmation asynchrone et l'accès simultané multi-processus et multi-thread. Il gère le cycle de vie du serveur et fournit d'autres fonctionnalités utiles telles que le mappage de la mémoire. WebSocket est un protocole de communication en temps réel couramment utilisé dans les applications Web modernes. L'utilisation de Swoole pour développer un serveur WebSocket nous permet de mettre en œuvre facilement une communication en temps réel avec les clients.

Étape 1 : Préparation de l'environnement du projet

Vous devez d'abord installer l'extension Swoole, qui peut être installée via la commande suivante :

pecl install swoole
Copier après la connexion

Après l'installation, vous devez ajouter la configuration suivante au fichier php.ini :

extension=swoole
Copier après la connexion

Après avoir effectué les opérations ci-dessus, vous pouvez l'utiliser en PHP Extended en utilisant Swoole.

Ensuite, vous devez créer un client WebSocket localement. Vous pouvez utiliser certains outils réseau ou installer un plug-in de navigateur Chrome "Simple WebSocket Client".

Étape 2 : Démarrez le serveur WebSocket

Dans ce processus, vous devez créer une instance de serveur Swoole WebSocket et effectuer certaines configurations de base, telles que la définition du port d'écoute et de l'adresse IP du serveur WebSocket. Vous devez également gérer diverses configurations. événements et événements des données du serveur WebSocket. Voici un exemple simple :

$server = new SwooleWebsocketServer("0.0.0.0", 9501);

$server->on('open', function (SwooleWebSocketServer $server, $request) {
    echo "connection open: {$request->fd}
";
});

$server->on('message', function (SwooleWebSocketServer $server, $frame) {
    echo "received message: {$frame->data}
";
    $server->push($frame->fd, json_encode(["hello", "world"]));
});

$server->on('close', function (SwooleWebSocketServer $server, $fd) {
    echo "connection close: {$fd}
";
});

$server->start();
Copier après la connexion

Dans le code ci-dessus, une instance de serveur WebSocket est créée à l'aide du nouveau mot-clé. Son constructeur doit transmettre une adresse IP et un numéro de port, et Swoole écoutera les connexions WebSocket sur ce port. Ensuite, les événements d'ouverture, de message et de fermeture du serveur WebSocket sont traités via plusieurs fonctions de rappel. Enfin, appelez la méthode $server->start() pour démarrer le serveur WebSocket.

Après avoir créé une instance de serveur WebSocket, vous pouvez gérer tous les événements utilisateur en reliant le rappel d'événement. Par exemple, nous pouvons gérer l'événement open d'une connexion client WebSocket au serveur en reliant la fonction de rappel 'open'.

Étape 3 : Interaction des données

Deux façons pour le client et le serveur WebSocket d'interagir : le serveur peut transmettre des données au client, et le client peut également envoyer des données au serveur WebSocket.

Le serveur envoie des données au client

Le serveur peut utiliser la méthode $server->push() pour transmettre des données à un client spécifique ou à tous les clients. Voici un exemple simple :

$server->push($frame->fd, json_encode(["hello", "world"]));
Copier après la connexion

Dans le code ci-dessus, $frame->fd est l'identifiant unique du client. Une connexion WebSocket peut être considérée comme une connexion TCP ouverte sur le serveur, où le client est identifié par un identifiant unique ($frame->fd).

Le client envoie des données au serveur

Le client peut utiliser l'API WebSocket écrite en JavaScript pour envoyer des données au serveur. Ce qui suit est un simple extrait de code JavaScript qui montre comment envoyer des données à un serveur WebSocket.

const socket = new WebSocket('ws://localhost:9501');
socket.addEventListener('open', function (event) {
    socket.send('Hello World!'); // 发送数据
});
Copier après la connexion

La communication entre le client et le serveur est basée sur les événements, les données reçues doivent donc être traitées via des gestionnaires d'événements. Une fonction de rappel doit être liée à l'événement WebSocket 'message', qui sera responsable du traitement des données reçues. Ce qui suit est un exemple simple :

$server->on('message', function (SwooleWebSocketServer $server, $frame) {
    echo "received message: {$frame->data}
";
});
Copier après la connexion

Exemple de code complet

Ce qui suit est un exemple complet de serveur Swoole WebSocket, démontrant comment utiliser Swoole pour établir un serveur WebSocket et interagir avec les clients.

Copier après la connexion

Ce serveur WebSocket écoutera et gérera les connexions WebSocket sur le port 9501. Vous pouvez utiliser n'importe quel client WebSocket pour tester et explorer cette instance de serveur.

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment réaliser une communication en temps réel en utilisant PHP et WebSocket Comment réaliser une communication en temps réel en utilisant PHP et WebSocket Dec 17, 2023 pm 10:24 PM

Avec le développement continu de la technologie Internet, la communication en temps réel est devenue un élément indispensable de la vie quotidienne. Une communication en temps réel efficace et à faible latence peut être obtenue grâce à la technologie WebSockets, et PHP, en tant que l'un des langages de développement les plus utilisés dans le domaine Internet, fournit également la prise en charge WebSocket correspondante. Cet article explique comment utiliser PHP et WebSocket pour établir une communication en temps réel et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ?

PHP et WebSocket : bonnes pratiques pour le transfert de données en temps réel PHP et WebSocket : bonnes pratiques pour le transfert de données en temps réel Dec 18, 2023 pm 02:10 PM

PHP et WebSocket : meilleures pratiques pour le transfert de données en temps réel Introduction : Dans le développement d'applications Web, le transfert de données en temps réel est une exigence technique très importante. Le protocole HTTP traditionnel est un protocole de modèle requête-réponse et ne peut pas assurer efficacement la transmission de données en temps réel. Afin de répondre aux besoins de transmission de données en temps réel, le protocole WebSocket a vu le jour. WebSocket est un protocole de communication full-duplex qui permet de communiquer en full-duplex via une seule connexion TCP. Comparé à H

SSE et WebSocket SSE et WebSocket Apr 17, 2024 pm 02:18 PM

Dans cet article, nous comparerons les événements envoyés par le serveur (SSE) et les WebSockets, qui sont tous deux des méthodes fiables pour fournir des données. Nous les analyserons sous huit aspects, notamment la direction de la communication, le protocole sous-jacent, la sécurité, la facilité d'utilisation, les performances, la structure des messages, la facilité d'utilisation et les outils de test. Une comparaison de ces aspects est résumée comme suit : Catégorie Événement envoyé par le serveur (SSE) Direction de communication WebSocket Unidirectionnel Bidirectionnel Protocole sous-jacent HTTP Sécurité du protocole WebSocket Identique à HTTP Failles de sécurité existantes Facilité d'utilisation Paramètres Paramètres simples Performances complexes Vitesse d'envoi rapide des messages Affecté par le traitement des messages et la gestion des connexions Structure du message Texte brut ou binaire Facilité d'utilisation Largement disponible Utile pour l'intégration de WebSocket

Conseils de programmation Golang WebSocket : gestion des connexions simultanées Conseils de programmation Golang WebSocket : gestion des connexions simultanées Dec 18, 2023 am 10:54 AM

Golang est un langage de programmation puissant et son utilisation dans la programmation WebSocket est de plus en plus appréciée par les développeurs. WebSocket est un protocole basé sur TCP qui permet une communication bidirectionnelle entre le client et le serveur. Dans cet article, nous expliquerons comment utiliser Golang pour écrire un serveur WebSocket efficace qui gère plusieurs connexions simultanées en même temps. Avant de présenter les techniques, apprenons d'abord ce qu'est WebSocket. Introduction à WebSocketWeb

Comment Java Websocket implémente-t-il la fonction de tableau blanc en ligne ? Comment Java Websocket implémente-t-il la fonction de tableau blanc en ligne ? Dec 17, 2023 pm 10:58 PM

Comment JavaWebsocket implémente-t-il la fonction de tableau blanc en ligne ? À l’ère d’Internet moderne, les gens accordent de plus en plus d’attention à l’expérience de collaboration et d’interaction en temps réel. Le tableau blanc en ligne est une fonction implémentée sur la base de Websocket. Il permet à plusieurs utilisateurs de collaborer en temps réel pour modifier la même planche à dessin et effectuer des opérations telles que le dessin et l'annotation. Il constitue une solution pratique pour l'enseignement en ligne, les réunions à distance, la collaboration en équipe et. d'autres scénarios. 1. Contexte technique WebSocket est un nouveau protocole fourni par HTML5 qu'il implémente.

Activer le mode d'interaction en écran partagé dans Win11 Activer le mode d'interaction en écran partagé dans Win11 Dec 25, 2023 pm 03:05 PM

Dans le système Win11, nous pouvons permettre à plusieurs moniteurs d'utiliser le même système et de fonctionner ensemble en activant l'interaction sur écran partagé. Cependant, de nombreux amis ne savent pas comment activer l'interaction sur écran partagé. les paramètres du système. Ce qui suit est Levez-vous et étudiez. Comment ouvrir l'interaction en écran partagé dans Win11 1. Cliquez sur le menu Démarrer et recherchez "Paramètres" 2. Recherchez ensuite les paramètres "Système". 3. Après avoir saisi les paramètres système, sélectionnez « Affichage » à gauche. 4. Sélectionnez ensuite « Étendre ces affichages » dans les multiples affichages à droite.

Comment utiliser WebSocket pour le transfert de fichiers dans Golang Comment utiliser WebSocket pour le transfert de fichiers dans Golang Dec 18, 2023 am 09:06 AM

Comment utiliser WebSocket pour le transfert de fichiers dans Golang WebSocket est un protocole réseau qui prend en charge la communication bidirectionnelle et peut établir une connexion persistante entre le navigateur et le serveur. Dans Golang, nous pouvons utiliser la bibliothèque tierce gorilla/websocket pour implémenter la fonctionnalité WebSocket. Cet article explique comment utiliser les bibliothèques Golang et Gorilla/Websocket pour le transfert de fichiers. Tout d'abord, nous devons installer Gorilla

Comment utiliser la coroutine Swoole dans Laravel Comment utiliser la coroutine Swoole dans Laravel Apr 09, 2024 pm 06:48 PM

L'utilisation des coroutines Swoole dans Laravel peut traiter un grand nombre de requêtes simultanément. Les avantages incluent : Traitement simultané : permet de traiter plusieurs requêtes en même temps. Hautes performances : Basé sur le mécanisme d’événements Linux epoll, il traite efficacement les requêtes. Faible consommation de ressources : nécessite moins de ressources serveur. Facile à intégrer : intégration transparente avec le framework Laravel, simple à utiliser.

See all articles