Swoole は実稼働環境用の PHP 非同期ネットワーク通信エンジンであり、TCP/UDP/Unix Socket の通常のクライアント/サーバー ネットワーク通信機能に加え、対応する非同期ファイルの読み取りと書き込み、非同期 MySQL およびその他の非同期 I/O 操作を提供します。この機能により、PHP 開発者は、複雑な C/C プログラミングの知識を学習することなく、簡潔でわかりやすい PHP コードを記述するだけで、高同時実行性と高性能のネットワーク サービス アプリケーションを作成できます。
この記事では、Swoole のインストール、基本的な使用法、Web 開発、およびよくある問題の解決策を紹介します。
1. Swoole のインストール
Swoole がサポートする PHP バージョンは PHP5.3 以降で、ソースコードのコンパイルまたは PECL を通じてインストールできます。この方法の詳細な手順:
方法 1. ソース コードを使用してコンパイルしてインストールします
Swoole のソース コードからダウンロードできます。公式ウェブサイト ( https://www.swoole.com/) 最新の Swoole ソース コード パッケージをダウンロードします。
ターミナルで次のコマンドを実行して、ソース コード パッケージを解凍します。
tar zxvf swoole-src-4.6.7.tar.gz
ターミナルで次のコマンドを実行して、解凍されたディレクトリに入り、コンパイルしてインストールします。
cd swoole-src-4.6.7 phpize ./configure make && make install
php.ini ファイルを編集し、最後に次の行を追加します。
extension=swoole.so
PHP を再起動して設定を行います。有効になります。
方法 2. PECL を使用してインストールする
pecl install swoole
php.ini ファイルを編集し、最後に次の行を追加します。
extension=swoole.so
PHP を再起動して設定を行います。有効になります。
2. 基本的な使用方法
以下は、単純な TCP サーバーのサンプル コードです:
<?php $serv = new swoole_server("0.0.0.0", 9501); $serv->on('connect', function ($serv, $fd) { echo "Client: Connect.\n"; }); $serv->on('receive', function ($serv, $fd, $from_id, $data) { $serv->send($fd, "Server: " . $data); }); $serv->on('close', function ($serv, $fd) { echo "Client: Close.\n"; }); $serv->start();
上記のコードは、TCP サーバーを作成し、ポート 9501 をリッスンします。クライアント接続時は「Client:Connect.」、クライアントからデータ送信時は「Server:Client Data」、クライアント切断時は「Client:Close.」が出力されます。
次は、単純な TCP クライアントのサンプル コードです。
<?php $client = new swoole_client(SWOOLE_SOCK_TCP); if (!$client->connect('127.0.0.1', 9501, -1)) { echo "Error: {$client->errCode}\n"; exit; } $client->send("Hello World!"); echo $client->recv(); $client->close();
上記のコードは、TCP クライアントを作成し、127.0 に接続します。 0.1:9501 ポート。 「Hello World!」文字列を送信し、サーバーがデータを返すのを待ち、最後に接続を閉じます。
3. Web 開発
Swoole は Web 開発もサポートしています。Swoole\Http\Server クラスを使用して Web サーバーを作成し、Swoole\Http\ を使用できます。 Request と Swoole\ Http\Response はリクエストとレスポンスを操作します。以下は簡単な例です:
<?php $http = new Swoole\Http\Server("0.0.0.0", 9501); $http->on('request', function ($request, $response) { $response->header("Content-Type", "text/plain"); $response->end("Hello World\n"); }); $http->start();
上記のコードは HTTP サーバーを作成し、ポート 9501 をリッスンします。要求されると、「Hello World」文字列が返されます。
4. 一般的な問題の解決策
解決策: これは、欠落しているためです。 libuv ライブラリの場合は、次のコマンドを実行してインストールできます:
yum install libuv
解決策: phpize コマンドが見つかりません、次のコマンドを実行してインストールできます:
yum install php-devel
次のコマンドを使用して、Swoole 拡張機能がインストールされているかどうかを確認できます。拡張機能がインストールされています:
php -m | grep swoole
「Swoole」が出力された場合 Swoole 拡張機能がインストールされていることを示します。
Swoole が提供する swoole_http_server 拡張機能を使用して、Web サーバーを起動し、指定されたポートをリッスンし、その後、その逆を行うことができます。 Nginx をポートにプロキシすることができます。
上記は Swoole の簡単な紹介です Swoole は、インターネット上の高同時性の分野で広く使用されている非常に強力な非同期ネットワーク通信エンジンです。この記事があなたのお役に立ち、Swoole の使い方をさらにマスターするのに役立つことを願っています。
以上がswooleのインストール方法と使用方法の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。