ホームページ  >  記事  >  バックエンド開発  >  PHP マルチスレッド プログラミングの概要: swoole 拡張機能を使用して WebSocket サーバーを作成する

PHP マルチスレッド プログラミングの概要: swoole 拡張機能を使用して WebSocket サーバーを作成する

WBOY
WBOYオリジナル
2023-06-29 11:06:321038ブラウズ

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 サーバーを作成する方法を示します。

  1. まず、server.php ファイルを作成し、swoole 拡張機能を導入し、WebSocket サーバーを初期化します。

    <?php
    $server = new SwooleWebSocketServer("0.0.0.0", 9501);
  2. その後、次のことができます。ワーカー プロセスやリスニング ポートの数などのサーバー パラメーターを設定します:

    $server->set([
     'worker_num' => 4,
     'max_request' => 10000,
    ]);
  3. 次に、WebSocket 接続のオープン イベントをリッスンし、それに応じて処理します:

    $server->on('open', function ($server, $request) {
     echo "new connection: {$request->fd}
    ";
    });
  4. 次に、WebSocket メッセージ イベントをリッスンし、それに応じて処理します。

    $server->on('message', function ($server, $frame) {
     echo "received message: {$frame->data}
    ";
     // 可以在这里编写自定义的业务逻辑处理
    });
  5. 最後に、WebSocket 接続の終了イベントをリッスンして処理します。

    $server->on('close', function ($server, $fd) {
     echo "connection closed: {$fd}
    ";
    });
  6. 最後に、WebSocket サーバーを起動します:

    $server->start();
  7. コマンド ラインで server.php を実行します:

    php server.php

4. WebSocket サーバーをテストする
WebSocket サーバーを作成したので、単純な HTML ページを使用してテストできます。

  1. まず、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>
  2. ブラウザを開いて、index.html ページにアクセスします。 WebSocket サーバーへの接続ステータスと受信メッセージは、ブラウザのコンソールで確認できます。

概要
swoole 拡張機能を使用すると、PHP で WebSocket サーバーを簡単に作成できます。実際のプロジェクト開発では、特定のニーズに応じて WebSocket サーバーの機能をさらに改善および最適化できます。同時に、swoole は、同時非同期の高性能ネットワーク アプリケーションを処理するために使用できる機能と API をさらに提供し、さらに深い学習と実践を可能にします。

以上がPHP マルチスレッド プログラミングの概要: swoole 拡張機能を使用して WebSocket サーバーを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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