インターネットの発展に伴い、高性能ネットワーク サーバーが開発者の間でますます好まれています。 Swoole は、PHP 言語をベースに開発された高性能ネットワーク通信エンジンで、ネットワーク通信の効率を大幅に向上させることができ、インターネットアプリケーションの分野で広く使用されています。
それでは、Swoole を使用して高性能ネットワーク サーバーを開発するにはどうすればよいでしょうか?次に、Swoole の開発とアプリケーションを深く理解するために、具体的なコード例を示します。
1. Swoole のインストール
Swoole のインストールは非常に簡単で、PHP 公式拡張マネージャー PECL を使用するだけです。具体的な方法は次のとおりです。
$ pecl install swoole
インストールが完了したら、php.ini ファイルを編集して設定行を追加し、swoole 拡張機能を有効にします。
extension=swoole.so
2. 単純な HTTP サーバーを作成します
誰もが Swoole の基本的な使用法を理解できるように、単純な HTTP サーバーを作成しましょう。
<?php $http = new swoole_http_server("127.0.0.1", 9501); $http->on('request', function ($request, $response) { $response->header("Content-Type", "text/html; charset=utf-8"); $response->end("<h1>Hello Swoole!</h1>"); }); $http->start();
ターミナルで次のコマンドを実行して HTTP サーバーを起動できます:
$ php server.php
次に、ブラウザで http://127.0.0.1:9501
にアクセスします。つまり、出力 Hello Swoole!
が表示されます。
3. WebSocket を使用したリアルタイム通信
Swoole は、リアルタイム通信を実現するための WebSocket プロトコルの使用もサポートしています。以下では、Swoole のリアルタイム コミュニケーション機能を誰もが理解できるように、簡単なチャット ルーム アプリケーションを作成します。
<?php $ws = new swoole_websocket_server("127.0.0.1", 9502); $ws->on('open', function ($ws, $request) { echo "client-{$request->fd} is connected "; }); $ws->on('message', function ($ws, $frame) { echo "received message: {$frame->data} "; foreach($ws->connections as $fd) { $ws->push($fd, $frame->data); } }); $ws->on('close', function ($ws, $fd) { echo "client-{$fd} is closed "; }); $ws->start();
ターミナルで次のコマンドを実行して WebSocket サーバーを起動できます:
$ php chatroom.php
次に、ブラウザで http://localhost:8080
にアクセスし、 JavaScript コンソールで、次のコードを実行します。
let ws = new WebSocket('ws://127.0.0.1:9502'); ws.onopen = function() { console.log('WebSocket is connected.'); }; ws.onmessage = function(event) { console.log(`received message: ${event.data}`); }; ws.onclose = function() { console.log('WebSocket is closed.'); }; ws.send('hello world');
この時点で、サーバーによって送信されたメッセージが受信されたことが JavaScript コンソールで確認できます。ブラウザで複数のタブを開くと、単純なチャット ルームの効果が表示されます。
4. コルーチンを使用して同時実行機能を向上させる
Swoole は、同時実行処理機能を向上させるためのコルーチンの使用をサポートしています。以下では、誰もが Swoole のコルーチン機能を理解できるように、簡単なコルーチン アプリケーションを作成します。
<?php Coun(function() { $result1 = Co::exec('ls'); $result2 = Co::exec('pwd'); $result3 = Co::exec('date'); echo "result1: {$result1[0]} "; echo "result2: {$result2[0]} "; echo "result3: {$result3[0]} "; });
ターミナルで次のコマンドを実行してコルーチン アプリケーションを実行できます:
$ php coroutine.php
この時点で、実行 ls# に対応する実行結果が表示されます。 ##、
pwd および
date コマンドの出力。
以上がSwoole を使用して高性能ネットワーク サーバーを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。