Workerman は、PHP マルチプロセスと libevent イベント ポーリング ライブラリをベースにした高性能 PHP ソケット サーバー フレームワークです。PHP 開発者は 1 つまたは 2 つのライブラリを実装するだけで済みます。 RPC サービス、チャット ルーム サーバー、ゲーム サーバーなどの独自のネットワーク アプリケーションを開発できます。
Workerman の目標は、PHP 開発者が PHP ソケットや PHP マルチプロセスの詳細を理解していなくても、高性能のソケットベースのアプリケーション サービスを簡単に開発できるようにすることです。 Workerman 自体は、PHP プロセス管理モジュールとソケット通信モジュールを備えた PHP マルチプロセス サーバー フレームワークであるため、php-fpm、nginx、apache などのコンテナに依存せずに独立して実行できます。
PHP を使用して開発
PHP マルチプロセスをサポート
TCP/UDP をサポート
インターフェイスでさまざまなアプリケーション層プロトコルをサポート
libevent イベント ポーリング ライブラリをサポートし、高い同時実行性をサポート
スムーズなサービスの再起動をサポート
PHP ファイル更新の検出と自動読み込みをサポート
PHP の長時間接続をサポート
指定されたユーザーとして子プロセスの実行をサポート
Telnet リモート制御をサポート
高性能
マルチプレイヤー オンライン オタマジャクシ ゲーム、PHP-Json-Rpc、PHP-Thrift-Rpc、PHP-WebSocket チャット ルーム、PHP 統計監視システムなど、Workerman に基づくネットワーク アプリケーションが多数あります。
サンプルコード:
<?phpuse Workerman\Worker;require_once './Workerman/Autoloader.php';// 创建一个Worker监听2346端口,使用websocket协议通讯$ws_worker = new Worker("websocket://0.0.0.0:2346");// 启动4个进程对外提供服务$ws_worker->count = 4;// 当收到客户端发来的数据后返回hello $data给客户端$ws_worker->onMessage = function($connection, $data){ // 向客户端发送hello $data $connection->send('hello ' . $data);};// 运行Worker::runAll();
パフォーマンスストレステスト
テスト環境:
系统:ubuntu 12.04 LTS 64位内存:8Gcpu:Intel® Core™ i3-3220 CPU @ 3.30GHz × 4
hello world
短链接(每次请求完成后关闭链接,下次请求建立新的链接):条件: 压测脚本开500个线程,每个线程链接Workerman 10W次,每次链接发送1个请求结果: 吞吐量:3W/S , cpu:60% , 内存占用:4*8M = 32M
长链接(每次请求后不关闭链接,下次请求继续复用这个链接):条件: 压测脚本开1000个线程,每个线程链接Workerman 1次,每个链接发送10W请求结果: 吞吐量:13W/S , cpu:68% , 内存占用:4*8M = 32M
无流量抖动,无内存泄漏,性能非常强悍
ワーカーマン起動インターフェース:
ワーカーマンステータス表示インターフェース: