Maison >développement back-end >tutoriel php >Comment utiliser l'extension Swoole de PHP ?
L'extension Swoole de PHP est un framework de communication réseau asynchrone hautes performances. Il peut être utilisé pour créer des applications serveur Web et client basées sur des protocoles tels que TCP, UDP, sockets Unix, etc. Les extensions Swoole sont actuellement largement utilisées dans les serveurs de jeux, les applications de chat, le transfert de données en temps réel et d'autres domaines. Cet article explique comment utiliser l'extension Swoole de PHP.
1. Installez l'extension Swoole
Avant d'utiliser l'extension Swoole, vous devez d'abord installer l'extension. Il peut être installé des deux manières suivantes.
pecl install swoole
Téléchargez le code source depuis le référentiel GitHub de l'extension Swoole :
git clone https://github.com/swoole/swoole-src.git
Décompressez le code source et entrez dans le répertoire :
tar -zxvf swoole-src.tar.gz cd swoole-src
Exécutez la commande suivante :
phpize ./configure make make install
2. Utilisez l'extension Swoole
Ce qui suit est un exemple de code pour démarrer un simple serveur TCP :
$server = new SwooleServer("127.0.0.1", 9501); //监听连接进入事件 $server->on('connect', function ($server, $fd) { echo "Client: {$fd} Connect. "; }); //监听数据接收事件 $server->on('receive', function ($server, $fd, $from_id, $data) { $server->send($fd, "Server: {$data}"); }); //监听连接关闭事件 $server->on('close', function ($server, $fd) { echo "Client: {$fd} Close. "; }); //启动服务器 $server->start();
Dans le code ci-dessus, nous avons créé un serveur TCP en écoute au port 9501 de 127.0.0.1 . Lorsque le client établit une connexion, l'événement d'entrée de connexion est déclenché. Lorsque le serveur reçoit des données, l'événement de réception de données est déclenché et les données reçues sont renvoyées intactes au client. Lorsque le client ferme la connexion, l'événement de fermeture de connexion est déclenché.
Ce qui suit est un exemple de code pour démarrer un serveur WebSocket simple :
$server = new SwooleWebSocketServer("127.0.0.1", 9501); //监听WebSocket连接打开事件 $server->on('open', function ($server, $request) { echo "Client: {$request->fd} Connect. "; }); //监听WebSocket消息事件 $server->on('message', function ($server, $frame) { $server->push($frame->fd, "Server: {$frame->data}"); }); //监听WebSocket连接关闭事件 $server->on('close', function ($server, $fd) { echo "Client: {$fd} Close. "; }); //启动服务器 $server->start();
Dans le code ci-dessus, nous avons créé un serveur WebSocket écoutant sur le port 9501 de 127.0.0.1. Lorsqu'un client WebSocket se connecte à un serveur, l'événement d'ouverture de connexion est déclenché. Lorsque le client WebSocket envoie un message au serveur, l'événement de message est déclenché et le message reçu est renvoyé intact au client. Lorsque le client WebSocket ferme la connexion, l'événement de fermeture de connexion est déclenché.
Ce qui suit est un exemple de code pour envoyer une requête HTTP asynchrone :
$client = new SwooleCoroutineHttpClient('www.baidu.com', 80); $client->set(['timeout' => 1]); $client->setHeaders([ 'Host' => "www.baidu.com", "User-Agent" => 'Chrome/49.0.2587.3', 'Accept' => 'text/html,application/xhtml+xml,application/xml', 'Accept-Encoding' => 'gzip', ]); $client->set(['timeout' => 1]); $client->get('/index.php'); echo $client->body;
Dans le code ci-dessus, nous créons un client HTTP pour envoyer de manière asynchrone une requête GET à www.baidu.com/ chemin index.php, obtenez la réponse et affichez le contenu de la réponse.
Résumé :
Cet article présente comment utiliser l'extension Swoole pour PHP. Grâce à l'extension Swoole, nous pouvons réaliser une communication réseau asynchrone haute performance et créer diverses applications réseau communes. Il convient de noter que l'extension Swoole nécessite PHP7 ou supérieur. De plus, lorsque vous utilisez l'extension Swoole, vous devez faire attention à ses caractéristiques de concurrence élevées pour éviter d'affecter la stabilité de l'application.
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!