Swoole は、PHP 言語に基づいたネットワーク通信フレームワークです。非同期、同時実行、高性能の HTTP、WebSocket、TCP/UDP プロトコルのサーバーとクライアントを提供できます。Web サービスやネットワーク通信アプリケーションを開発する場合に非常に役立ちます。一部のインターネット企業で広く使用されています。
この記事ではSwooleコールの使い方を紹介します。
1. Swoole のインストール
Swoole を使用する前に、まず Swoole をインストールする必要があります。 Composer を使用することも、PHP 拡張機能に手動でダウンロードしてインストールすることもできます。手順は次のとおりです:
コマンド ラインにコマンドを入力します。 :composer require swoole/swoole、つまり最新バージョンの Swoole をインストールできます。
Swoole の公式 Web サイト (https://www.swoole.com/) パッケージで Swoole のソース コード圧縮をダウンロードします。それを解凍し、コマンド ラインで次のコマンドを実行してインストールします。
$ phpize $ ./configure $ make && make install
2. Swoole を呼び出します
Swoole サービスを開始する前に、まずサービスを作成する必要があります。 HTTP、WebSocket、TCP/UDP、その他の種類のサービスを作成できます。HTTP サービスを例に挙げます:
$serv = new Swoole\Http\Server("127.0.0.1", 9501);
サービスを作成した後、コールバック関数はサービスに登録されており、サーバーがクライアントからのリクエストを受信した後の、リクエストへの応答やデータの処理などの処理ロジックです。 HTTP サービスでは、次のコールバック関数を使用できます。
(1)onStart
サービスの開始時に、この関数を実行します。
$serv->on('start', function ($server) { echo "Swoole http server is started at http://127.0.0.1:9501\n"; });
(2)onRequest
HTTPリクエスト受信時にこの関数を実行します。
$serv->on('request', function ($request, $response) { $response->header("Content-Type", "text/html; charset=utf-8"); $response->end("Hello Swoole"); });
(3)onClose
接続が閉じられたときにこの関数を実行します。
$serv->on('close', function ($server, $fd) { echo "client {$fd} close\n"; });
サービスの作成とコールバック関数の登録が完了したら、サービスを開始する必要があります。
$serv->start();
このようにして、単純な HTTP サービスが作成されます。
3. 非同期ノンブロッキングの実装
Swoole にはコルーチン、非同期、ノンブロッキングなどの機能があり、同期ブロッキングと非同期ノンブロッキングの両方を実現できます。 。 Swoole が提供するコルーチン機能を使用すると、PHP プログラムのパフォーマンスを大幅に向上させることができます。
次に、非同期ノンブロッキング通信を実装する方法を見てみましょう。
次のコードを使用して非同期 TCP クライアントを作成できます:
$client = new Swoole\Coroutine\Client(SWOOLE_TCP, SWOOLE_ASYNC);
非同期クライアントを使用してサーバーに接続リクエストを送信するには、接続コールバック関数を設定する必要があります。
$client->connect('127.0.0.1', 9501, function ($client) { $client->send("hello world"); });
接続が成功したら、recv メソッドを使用してサーバーから返されたデータを受信します。コールバック関数。
$client->recv(function ($client, $data) { echo "received data: {$data}\n"; });
Swooleが提供するコルーチン機能を利用すると、プログラムの実行を妨げることなくコルーチンの一時停止などを行うことができます。
Swoole の非同期ノンブロッキング機能は、特に高い同時実行性、ネットワーク通信、その他のシナリオにおいて、プログラムのパフォーマンスを大幅に向上させることができます。 Swoole を使用してネットワーク通信アプリケーションを開発すると、非同期ノンブロッキング通信を簡単に実装でき、サーバーのスループットが向上し、ユーザー エクスペリエンスが向上します。
以上がSwooleのインストールと呼び出し方(ステップ共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。