ホームページ >PHPフレームワーク >Workerman >Workerman オープンソース ライブラリの詳細説明: 同時実行性の高いサーバー アプリケーションを迅速に構築する例の共有

Workerman オープンソース ライブラリの詳細説明: 同時実行性の高いサーバー アプリケーションを迅速に構築する例の共有

WBOY
WBOYオリジナル
2023-08-05 16:37:031170ブラウズ

Workerman オープン ソース ライブラリの詳細説明: 高同時実行サーバー アプリケーションを迅速に構築する例の共有

はじめに:
IT 分野では、インターネットの急速な発展に伴い、高度なサーバー アプリケーションの需要が高まっています。同時実行サーバー アプリケーションが増加しています。この需要を満たすために、開発者は効率的でスケーラブルなサーバー アプリケーションを構築するためのさまざまな方法とツールを模索しています。 Workerman は、PHP オープン ソース ライブラリとして、同時実行性の高いサーバー アプリケーションを迅速に構築するためのソリューションを提供します。この記事では、Workerman の機能と使い方を詳しく紹介し、例の共有を通じてその強力な機能を示します。

1. Workerman の紹介
Workerman は、中国人の開発者 Huang Yanhua によって開発およびオープンソース化された PHP フレームワークで、シンプル、柔軟、効率的、安定した開発ソリューションを提供することを目的としています。その主な機能は次のとおりです:

  1. 高パフォーマンス: Workerman は PHP のイベント駆動型プログラミング モデルに基づいており、カーネルは epoll エッジ トリガー モードを使用して実装されているため、サーバーの処理能力が大幅に向上します。同時リクエスト。従来の同期ブロッキング IO モデルと比較して、Workerman のパフォーマンスは大幅に向上しました。
  2. マルチプロトコルのサポート: Workerman は、HTTP、WebSocket、およびカスタム プロトコルをサポートします。これは、Web サーバーを開発している場合でも、リアルタイム通信アプリケーションを開発している場合でも、満足できることを意味します。
  3. 優れたスケーラビリティ: Workerman は、豊富な拡張インターフェイスとプラグイン メカニズムを提供します。開発者は実際のニーズに応じてカスタマイズされた開発を実行でき、他のフレームワーク (Laravel、Symfony など) と簡単に統合できます。

2. Workerman の使用例
Workerman の利点と使用法をより直観的に示すために、以下では簡単な例を使用して Workerman を使用してチャット ルーム アプリケーションを構築する方法を示します。 WebSocket上で。

  1. Workerman のインストール
    まず、Composer を通じて Workerman をインストールする必要があります。コマンド ライン ターミナルを開き、次のコマンドを実行します。

composer require workman/workerman

  1. サーバー アプリケーションの作成
    chat.php という名前のファイルを作成して追加します。次のコードを記述します。
<?php

require __DIR__ . '/vendor/autoload.php';

use WorkermanWorker;

// 创建一个Worker监听8080端口,使用WebSocket协议通信
$ws_worker = new Worker("websocket://0.0.0.0:8080");

// 启动多个进程,以利用多核CPU
$ws_worker->count = 4;

// 响应浏览器请求时触发的回调函数
$ws_worker->onMessage = function ($connection, $data) {
    // 向所有客户端广播消息
    foreach ($ws_worker->connections as $client) {
        $client->send($data);
    }
};

// 运行Worker
Worker::runAll();

上記のコードは、WebSocket Worker オブジェクトを作成し、ポート 8080 をリッスンします。 $ws_worker->onMessageコールバック関数は、ブラウザーによって送信されたメッセージを処理し、すべてのクライアント接続を横断してメッセージを送り返すために使用され、それによって接続されているすべてのクライアントにメッセージをブロードキャストします。

  1. サーバー アプリケーションを開始します
    コマンド ライン ターミナルで、chat.php が存在するディレクトリに切り替え、次のコマンドを実行してサーバー アプリケーションを開始します。
  2. php chat.php start

HTML ページの書き込み
    index.html という名前のファイルを作成し、その中に次のコードを書き込みます:

  1. <!DOCTYPE html>
    <html>
    <head>
        <title>Workerman聊天室</title>
        <style>
            #messages {
                height: 200px;
                overflow-y: scroll;
            }
        </style>
        <script>
            var ws = new WebSocket('ws://localhost:8080');
    
            ws.onopen = function () {
                console.log('连接成功!');
            };
    
            ws.onmessage = function (event) {
                var messages = document.getElementById('messages');
                messages.innerHTML += '<br>' + event.data;
                messages.scrollTop = messages.scrollHeight;
            };
    
            function sendMsg() {
                var input = document.getElementById('message');
                var msg = input.value;
                input.value = '';
    
                ws.send(msg);
            }
        </script>
    </head>
    <body>
        <div id="messages"></div>
        <input type="text" id="message" placeholder="请输入消息">
        <button onclick="sendMsg()">发送</button>
    </body>
    </html>
  2. 上記コードは WebSocket 接続を作成し、ページにメッセージを入力して送信ボタンをクリックすることで、メッセージをサーバーに送信します。サーバーは接続されているすべてのクライアントにメッセージをブロードキャストし、クライアントはメッセージを受信するとページにメッセージを表示します。

アプリケーションの実行
    index.html ファイルを Web サーバーのルート ディレクトリに配置し、ブラウザで http://localhost/index.html にアクセスします。 Workermanをベースに構築されたチャットルームアプリを体験いただけます。

  1. 結論:
この記事では、Workerman オープン ソース ライブラリの特徴と使用法を紹介し、Workerman を使用して WebSocket に基づいたチャット ルーム アプリケーションを構築する方法を例を通して示します。 Workerman は、その高性能、マルチプロトコルのサポート、優れたスケーラビリティにより、開発者のお気に入りのツールの 1 つとなっています。私たちはさらに前進し、同時実行性の高いサーバー アプリケーションのさらなる可能性を共同で探索していきましょう。

以上がWorkerman オープンソース ライブラリの詳細説明: 同時実行性の高いサーバー アプリケーションを迅速に構築する例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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