Maison > développement back-end > tutoriel php > Comment utiliser l'extension Swoole en PHP pour le développement de serveurs

Comment utiliser l'extension Swoole en PHP pour le développement de serveurs

PHPz
Libérer: 2023-05-11 18:46:01
original
1798 Les gens l'ont consulté

Avec le développement d'Internet, les scénarios d'application PHP sont de plus en plus répandus, notamment sous l'exigence d'une concurrence élevée tout en garantissant des performances, l'utilisation des extensions Swoole pour le développement de serveurs est devenue un moyen populaire. Cet article explique comment utiliser l'extension Swoole en PHP pour le développement de serveurs.

1. Introduction à Swoole

Swoole est un framework de communication réseau PHP hautes performances. Il est développé sur la base d'extensions PHP et fournit un support multi-processus et multi-thread. tels que les coroutines ont considérablement amélioré l'efficacité opérationnelle. De plus, Swoole prend également en charge TCP, UDP, WebSocket et d'autres protocoles, ce qui rend très pratique le développement d'applications réseau.

2. Configuration de l'environnement

Avant d'utiliser Swoole pour le développement, nous devons d'abord installer l'extension Swoole sur le serveur. Voici les étapes pour installer Swoole :

1 Exécutez les commandes suivantes sur le serveur pour télécharger et décompresser le package d'installation de Swoole

wget https://github.com. /swoole/swoole- src/archive/v4.3.5.tar.gz
tar zxvf v4.3.5.tar.gz

2. Entrez le dossier décompressé et exécutez la commande suivante pour compiler. et installez#🎜🎜 #

cd swoole-src-4.3.5

phpize
./configure --enable-sockets --enable-mysqlnd
make && make install#🎜 🎜##🎜🎜 #3. Ouvrez le fichier php.ini et ajoutez la configuration d'extension suivante

extension=swoole.so

4. effet

#🎜🎜 #3. Utilisez Swoole pour le développement de serveurs

Ci-dessous, nous prendrons un simple programme de serveur HTTP comme exemple pour présenter comment utiliser Swoole pour le développement de serveurs.

1. Créez un fichier de serveur HTTP, nommez-le http_server.php et écrivez le code suivant :

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

$server->on("start", function () {

echo "HTTP server started at http://0.0.0.0:9501
Copier après la connexion
Copier après la connexion
Copier après la connexion

";

}); # 🎜🎜#

$server->on("request", function ($request, $response) {

$response->header("Content-Type", "text/plain");
$response->end("Hello World
Copier après la connexion
Copier après la connexion

");
});#🎜🎜 #

$server->start();

?>

2 Exécutez le programme

php http_server.php

. #🎜 🎜#3. Programme de test

Entrez http://127.0.0.1:9501 dans le navigateur Si vous voyez les mots "Hello World", cela signifie que le programme s'exécute avec succès.

4. Mode multi-processus

En mode multi-processus, Swoole peut gérer plusieurs requêtes en même temps, améliorant ainsi les performances simultanées du serveur. Le code ci-dessous montre comment utiliser le multi-traitement dans Swoole.

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

$server->set([#🎜🎜 #

"worker_num" => 4,
Copier après la connexion

]);

$server->on("start", function () {

echo "HTTP server started at http://0.0.0.0:9501
Copier après la connexion
Copier après la connexion
Copier après la connexion

";

});

$server->on("request", function ($request, $response) {

$response->header("Content-Type", "text/plain");
$response->end("Hello World
Copier après la connexion
Copier après la connexion

");

});#🎜🎜 #

$server->start();

?>

Dans le code ci-dessus, nous utilisons la fonction set pour définir le paramètre worker_num sur 4, ce qui signifie démarrer 4 processus de traitement.

5. Mode coroutine


En mode coroutine, Swoole utilise une coroutine monothread, qui peut mieux contrôler l'utilisation des ressources, réduisant ainsi la surcharge du serveur et améliorant les performances du serveur. Le code ci-dessous montre comment utiliser les coroutines dans Swoole.

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

$server->set([#🎜🎜 #

"worker_num" => 1,
Copier après la connexion

]);

$server->on("start", function () {

echo "HTTP server started at http://0.0.0.0:9501
Copier après la connexion
Copier après la connexion
Copier après la connexion

";

});

$server->on("request", function ($request, $response) {

$response->header("Content-Type", "text/plain");
swoole_coroutine_create(function () use ($response) {
    $result = file_get_contents("http://www.baidu.com");
    $response->end($result);
});
Copier après la connexion

});

$server ->start();

?>

Dans le code ci-dessus, nous utilisons la fonction swoole_coroutine_create dans le gestionnaire de requêtes pour activer la coroutine, puis utilisons la fonction file_get_contents pour obtenir le Contenu de la page d'accueil de Baidu et envoyer le résultat au client.

6 Mode WebSocket

En mode WebSocket, Swoole peut communiquer via le protocole WebSocket, réalisant ainsi une communication bidirectionnelle ci-dessous. . Le code montre comment utiliser le protocole WebSocket dans Swoole. $server->on("start", function () {

echo "WebSocket server started at ws://0.0.0.0:9501
Copier après la connexion

";

});
.

$server->on("open ", fonction ($server, $request) {

echo "WebSocket connection open: fd={$request->fd}
Copier après la connexion

";

});

$server->on("message", function ($server, $frame) {

echo "Received message: {$frame->data}
Copier après la connexion

";

$server->push($frame->fd, "Server received: {$frame->data}");
Copier après la connexion

});

#🎜🎜 #$server->on("close", function ($server, $fd) {

echo "WebSocket connection close: fd={$fd}
Copier après la connexion

";
});

$server- >start();

?>


Dans le code ci-dessus, nous utilisons la classe WebSocketServer pour démarrer le serveur WebSocket et le traiter via des événements d'ouverture, de message et de fermeture.

7. Conclusion

Dans cet article, nous avons présenté comment utiliser l'extension Swoole en PHP pour le développement de serveurs, y compris le mode multi-processus, le mode coroutine et le mode WebSocket, afin que Il devient plus facile de garantir les performances du serveur dans des conditions de concurrence élevée. Si vous avez besoin de développement de serveurs hautes performances, vous pouvez aussi bien essayer Swoole.

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