ホームページ  >  記事  >  バックエンド開発  >  サーバー開発のためにPHPでSwoole拡張機能を使用する方法

サーバー開発のためにPHPでSwoole拡張機能を使用する方法

PHPz
PHPzオリジナル
2023-05-11 17:13:541771ブラウズ

インターネットの発展に伴い、PHP アプリケーションのシナリオはますます普及しており、特にパフォーマンスを確保しながら高い同時実行性が求められる中、Swoole 拡張機能を使用したサーバー開発が一般的になってきています。この記事では、PHP でサーバー開発に Swoole 拡張機能を使用する方法を紹介します。

1. Swoole の概要

Swoole は、高性能 PHP ネットワーク通信フレームワークであり、PHP 拡張機能に基づいて開発され、マルチプロセス、マルチスレッド、コルーチンなどの同様のサポートを提供します。を Java. に変換し、作業効率を大幅に向上させます。さらに、Swoole は TCP、UDP、WebSocket などのプロトコルもサポートしているため、ネットワーク アプリケーションの開発が非常に便利です。

2. 環境構成

Swoole を開発に使用する前に、まずサーバーに Swoole 拡張機能をインストールする必要があります。 Swoole をインストールする手順は次のとおりです:

1. サーバー上で次のコマンドを実行して、Swoole インストール パッケージをダウンロードして解凍します

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

2. 解凍したフォルダーに入り、次のコマンドを実行して

## をコンパイルしてインストールします。 #cd swoole-src -4.3.5

phpize
./configure --enable-sockets --enable-mysqlnd
make && make install

3. php.ini ファイルを開きます。次の拡張構成を追加します

extension=swoole.so

4. PHP を再起動して拡張機能を有効にします

3. サーバー開発には Swoole を使用します

以下では、単純な HTTP サーバー プログラムを例として、Swoole をサーバー開発に使用する方法を紹介します。

1. HTTP サーバー ファイルを作成し、http_server.php という名前を付け、次のコードを記述します:

0f02a8745a57ab12315ada666d0df7daon("start", function () {

echo "HTTP server started at http://0.0.0.0:9501

";

});

$server-> ; on("リクエスト", 関数 ($request, $response) {

$response->header("Content-Type", "text/plain");
$response->end("Hello World

");

});

$server->start();

? >

2. プログラムを実行します

php http_server.php

3. プログラムをテストします

に http://127.0.0.1 を入力します。ブラウザ:9501 で、「Hello World」という文字が表示されれば、プログラムが正常に実行されたことを意味します。

4. マルチプロセス モード

マルチプロセス モードでは、Swoole は複数のリクエストを同時に処理できるため、サーバーの同時パフォーマンスが向上します。以下のコードは、Swoole でマルチプロセッシングを使用する方法を示しています。

f060c68e6bd35cfd7a6e48e1922f87cfset([

"worker_num" => 4,

] );

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

echo "HTTP server started at http://0.0.0.0:9501

";

});

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

$response->header("Content-Type", "text/plain");
$response->end("Hello World

";

});

$server->on ("リクエスト", 関数 ($request, $response) {

"worker_num" => 1,

");

});

$server->start();

?> ;

上記のコードでは、set 関数を使用して、worker_num パラメーターを 4 に設定します。これは、処理のために 4 つのプロセスを開始することを意味します。

5. コルーチン モード

コルーチン モードでは、Swoole はシングルスレッド コルーチンを使用してリソースの使用をより適切に制御し、それによってサーバーのオーバーヘッドを削減し、サーバーのパフォーマンスを向上させます。以下のコードは、Swoole でコルーチンを使用する方法を示しています。

6af2851ff1b7a536358059aee6d1f28dset([
echo "HTTP server started at http://0.0.0.0:9501

] );

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

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

";

});

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

echo "WebSocket server started at ws://0.0.0.0:9501

";

});

$server->on ("リクエスト", 関数 ($request, $response) {

echo "WebSocket connection open: fd={$request->fd}

});

$server->start();
?>

上記のコードでは、リクエスト ハンドラーで swoole_coroutine_create 関数を使用してコルーチンを有効にし、次に file_get_contents 関数を使用して Baidu ホームページのコンテンツを取得し、結果をクライアントに送信します。モード

WebSocket モードでは、Swoole は WebSocket プロトコルを通じて通信できるため、双方向通信が実現します。次のコードは、Swoole で WebSocket プロトコルを使用する方法を示しています。

e6f186dcf6483f38dfaac1380dd28179on("message", function ($server, $frame) {

echo "WebSocket connection close: fd={$fd}

";

rrreee

});

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

rrreee

";

});

$server->start();

?> ;## ####上記のコードでは、WebSocketServer クラスを使用して WebSocket サーバーを起動し、open、message、および close イベントを通じて WebSocket サーバーを処理します。この記事では、マルチプロセス モード、コルーチン モード、WebSocket モードなどのサーバー開発に PHP で Swoole 拡張機能を使用する方法を紹介します。これにより、高い同時実行下でサーバーのパフォーマンスを確保しやすくなります。高パフォーマンスのサーバー開発が必要な場合は、Swoole を試してみるとよいでしょう。 ###

以上がサーバー開発のためにPHPでSwoole拡張機能を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。