Créer des applications PHP haute performance avec Swoole
Qu'est-ce que Swoole ?
Swoole est un framework de communication réseau haute performance pour PHP, offrant des fonctionnalités asynchrones, multithread et coroutines, permettant à PHP de gérer des tâches à haute concurrence comme Node.js. Il prend en charge divers protocoles tels que TCP, UDP, UnixSocket, HTTP, WebSocket, etc., et est adapté pour construire des serveurs web haute performance, des architectures de microservices, des systèmes de communication en temps réel, etc.
Principales caractéristiques et avantages de Swoole
- Haute performance : Swoole est écrit en langage C, avec une performance extrêmement élevée, supportant les E/S asynchrones et les coroutines, capable de traiter de nombreuses requêtes simultanément.
- Riches fonctionnalités : Il prend en charge divers protocoles réseau, les minuteurs, la gestion des processus, la gestion de la mémoire, etc., répondant à divers besoins de développement.
- Facile à utiliser : Il propose une API simple et une documentation riche, aidant les développeurs à démarrer rapidement.
- Grande extensibilité : Il prend en charge les extensions et plugins personnalisés, permettant une personnalisation flexible selon les besoins.
Swoole est un choix idéal pour construire des applications web haute performance et des systèmes de communication en temps réel, adapté à divers projets, des petites applications aux systèmes d'entreprise de grande envergure.
Installer Swoole
Dans cet article, nous allons expliquer comment installer et utiliser Swoole dans l'environnement ServBay.
TIP
ServBay recommande aux développeurs de placer leurs sites web dans le répertoire /Applications/ServBay/www
pour une gestion facilitée.
Étape 1 : Installer l'extension Swoole
Activer l'extension Swoole
ServBay a préinstallé l'extension Swoole, les utilisateurs doivent l'activer et redémarrer PHP. Veuillez vous référer à l'article Comment activer le module Swoole intégré de ServBay pour activer le module Swoole.
Étape 2 : Créer le répertoire du projet
Créez le répertoire du projet et accédez-y :
cd /Applications/ServBay/www
mkdir servbay-swoole-app
cd servbay-swoole-app
2
3
Étape 3 : Créer le script du serveur Swoole
Dans le répertoire du projet, créez un fichier server.php
et écrivez un serveur HTTP Swoole simple :
<?php
use Swoole\Http\Server;
use Swoole\Http\Request;
use Swoole\Http\Response;
$server = new Server("0.0.0.0", 9501);
$server->on("start", function (Server $server) {
echo "Swoole HTTP server is started at http://0.0.0.0:9501\n";
});
$server->on("request", function (Request $request, Response $response) {
$response->header("Content-Type", "text/plain");
$response->end("Hello ServBay!");
});
$server->start();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Étape 4 : Exécuter le serveur Swoole
Exécutez la commande suivante dans le terminal pour démarrer le serveur Swoole :
php server.php
Vous verrez la sortie suivante :
Swoole HTTP server is started at http://0.0.0.0:9501
Étape 5 : Accéder au serveur Swoole
Ouvrez un navigateur et accédez à http://localhost:9501
, vous verrez la page afficher Hello ServBay!
.
Utilisation de Swoole pour gérer des connexions WebSocket
Swoole prend également en charge le protocole WebSocket, ce qui est utile pour construire des applications de communication en temps réel. Nous allons montrer comment utiliser Swoole pour gérer des connexions WebSocket.
Créer le script du serveur WebSocket
Dans le répertoire du projet, créez un fichier websocket_server.php
et écrivez un serveur WebSocket simple :
<?php
use Swoole\WebSocket\Server;
use Swoole\Http\Request;
use Swoole\WebSocket\Frame;
$server = new Server("0.0.0.0", 9502);
$server->on("start", function (Server $server) {
echo "Swoole WebSocket server is started at ws://0.0.0.0:9502\n";
});
$server->on("open", function (Server $server, Request $request) {
echo "connection open: {$request->fd}\n";
});
$server->on("message", function (Server $server, Frame $frame) {
echo "received message: {$frame->data}\n";
$server->push($frame->fd, "Hello, {$frame->data}");
});
$server->on("close", function ($ser, $fd) {
echo "connection close: {$fd}\n";
});
$server->start();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Exécuter le serveur WebSocket
Exécutez la commande suivante dans le terminal pour démarrer le serveur WebSocket :
php websocket_server.php
Vous verrez la sortie suivante :
Swoole WebSocket server is started at ws://0.0.0.0:9502
Connecter au serveur WebSocket
Vous pouvez utiliser un client WebSocket dans un navigateur ou d'autres outils clients WebSocket (par exemple wscat
) pour vous connecter au serveur WebSocket.
Utiliser wscat
pour se connecter
Installer
wscat
:bashnpm install -g wscat
1Se connecter au serveur WebSocket :
bashwscat -c ws://localhost:9502
1Envoyer un message :
bash> Hello ServBay
1
Vous verrez le message de retour du serveur :
< Hello, Hello ServBay
En suivant ces étapes, vous avez créé et exécuté avec succès un projet Swoole, et utilisé les fonctionnalités offertes par Swoole pour gérer des requêtes HTTP et des connexions WebSocket. La haute performance et les riches fonctionnalités de Swoole en font un choix idéal pour la construction d'applications à haute concurrence.