PHP マルチスレッド プログラミングの入門: swoole 拡張機能を使用した WebSocket サーバーの作成
はじめに
Web 開発では、リアルタイム通信の要件がますます重要になってきています。従来の HTTP プロトコルではリアルタイム通信のニーズを満たすことができず、WebSocket プロトコルがその解決策となりました。 PHP で WebSocket サーバーを実装するには、swoole 拡張機能を使用してマルチスレッド サーバーを作成できます。
1.スウールとは何ですか?
swoole は、非同期、マルチスレッド、およびコルーチンのサポートを提供する PHP 拡張機能です。 swoole を使用すると、PHP で同時サーバー、非同期タスク、長時間接続、高性能ネットワーク アプリケーションを作成できます。 TCP、UDP、HTTP、WebSocket などのさまざまなプロトコルのサポートを含む、これらの機能を実装するための一連の API を提供します。
2. 準備
始める前に、swoole 拡張機能がインストールされていることを確認する必要があります。次のコマンドを使用して、Linux システムに swoole をインストールできます:
pecl install swoole
または、Windows システムでは、公式 Web サイトから swoole バイナリ パッケージをダウンロードし、PHP 拡張ディレクトリに抽出できます。次に、php.ini ファイルに次の設定を追加します:
extension=swoole
3. WebSocket サーバーの作成
以下では、簡単な例を使用して、swoole 拡張機能を使用して WebSocket サーバーを作成する方法を示します。
まず、server.php ファイルを作成し、swoole 拡張機能を導入し、WebSocket サーバーを初期化します。
<?php $server = new SwooleWebSocketServer("0.0.0.0", 9501);
その後、次のことができます。ワーカー プロセスやリスニング ポートの数などのサーバー パラメーターを設定します:
$server->set([ 'worker_num' => 4, 'max_request' => 10000, ]);
次に、WebSocket 接続のオープン イベントをリッスンし、それに応じて処理します:
$server->on('open', function ($server, $request) { echo "new connection: {$request->fd} "; });
次に、WebSocket メッセージ イベントをリッスンし、それに応じて処理します。
$server->on('message', function ($server, $frame) { echo "received message: {$frame->data} "; // 可以在这里编写自定义的业务逻辑处理 });
最後に、WebSocket 接続の終了イベントをリッスンして処理します。
$server->on('close', function ($server, $fd) { echo "connection closed: {$fd} "; });
最後に、WebSocket サーバーを起動します:
$server->start();
コマンド ラインで server.php を実行します:
php server.php
4. WebSocket サーバーをテストする
WebSocket サーバーを作成したので、単純な HTML ページを使用してテストできます。
まず、index.html ファイルを作成し、次のコードを記述します。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>WebSocket Test</title> <script> var ws = new WebSocket("ws://localhost:9501"); ws.onopen = function() { console.log("WebSocket connection open."); }; ws.onmessage = function(evt) { console.log("received message: " + evt.data); }; ws.onclose = function() { console.log("WebSocket connection closed."); }; </script> </head> <body> <h1>WebSocket Test</h1> </body> </html>
概要
swoole 拡張機能を使用すると、PHP で WebSocket サーバーを簡単に作成できます。実際のプロジェクト開発では、特定のニーズに応じて WebSocket サーバーの機能をさらに改善および最適化できます。同時に、swoole は、同時非同期の高性能ネットワーク アプリケーションを処理するために使用できる機能と API をさらに提供し、さらに深い学習と実践を可能にします。
以上がPHP マルチスレッド プログラミングの概要: swoole 拡張機能を使用して WebSocket サーバーを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。