複数の同時高性能ネットワーク通信拡張今日は、我々は、PHPのレベルで複数の同時非同期通信を実現しインストールしてテストPHP、およびこの拡張は、後にPHPにロードされたCの声を、使用して開発され、多くの機能は、音声をシミュレートして行きます大幅にPHPアプリケーションシナリオを広げます。
フレーズの公式サイトを直接使用している場合は、エラーが発生する可能性があり、あなたがswooleをインストールするときにジャムが動かない、一度成功することができるより多くを試す、命令することができます。
PECL swooleをインストールし
た環境とCLI、iniファイルのPHPのFPM環境を設定するには、そのための内部ロード拡張します。
動画の住所:
https://www.bilibili.com/video/av70354024/
httpServer.php
$ HTTP = 新 swoole_http_server( "127.0.0.1"、9501 ); $ HTTP - >上の(、 "スタート" 機能($サーバー){ エコーは "Swooleのhttpサーバがhttp://127.0.0.1:9501\nで開始されました" ; }); $ HTTP - >( "要求"に、機能($要求、$応答){ $応答 - > ヘッダ( "のContent-Type"、 "text / plainの" ); $応答 - > 終了( "Hello Worldの\ nを" ); }); $ HTTP - >スタート();
多少の誤差があるだろうときのHttpClientの使用に注意してください、swooleの最初の新バージョンがSwoole \のHttp \クライアントを削除し、クラスが報告され、そして第二協会の過程でgetメソッドを実行するために見つけることができません
httpClient.php
$クライアント=新しいswoole_client(SWOOLE_SOCK_TCP、SWOOLE_SOCK_ASYNC)。 $クライアント- >上( "接続"、機能($のCLI){ $ cli->( "こんにちは世界\ nを"送ります); }); $クライアント- >上の( "受信"、関数($ CLI、$データ){ エコー"を受信:{$データ} \ n"; }); $クライアント- >上に( "エラー"、関数($ CLI){ "失敗\ nを接続する"エコー; }); $クライアント- >上の( "クローズ"、関数($ CLI){ エコー"接続クローズする\ n"; }); $クライアント- >( "127.0.0.1"、9502、0.5)を接続します。
taskServer.php
<?PHPの $のSERV =新しいSwoole \サーバー( "127.0.0.1"、9502、SWOOLE_BASE)。 $ serv->セット(配列( 'worker_num' => 2、 'task_worker_num' => 4 ))。 $ serv->( '受信'、関数(Swoole \サーバーの$ SERV、$ FD、$ from_id、$データ){上 。。エコー"接收数据" $データ"\ n"は; $データ=トリム($データ) ; $ TASK_ID = $ serv->タスク($データ、0); $ serv->送信($ FD "分发任务、任务のID为する$ TASK_IDする\ n"); }); $ serv->( 'タスク'、機能上(Swoole \サーバーの$ SERV、$ TASK_ID、$ from_id、$データ){ エコー"タスカー进程接收到数据"; #」エコー{$ serv-> worker_id} \ tonTask: [PID = {$ serv-> worker_pid}]。TASK_ID = $ TASK_ID、DATA_LEN =」strlenを($データ)。PHP_EOL ""。 $ serv->仕上げ($データ)。 }); $ serv->に( '完了'、関数(Swoole \サーバーの$ SERV、$ TASK_ID、$データ){ 。$データ).PHP_EOL(strlenを"タスク#$は、DATA_LEN =完成TASK_ID"エコー; }); $ serv->( 'workerStart'、関数($のSERVは、$ worker_id){上の グローバルの$ ARGV; ($ worker_id> = $ serv->設定場合[ 'worker_num']){ swoole_set_process_name(「PHP {$のARGV [0 ]}:task_worker "); }他{ swoole_set_process_name(" PHP {$のARGV [0]}:ワーカー"); } })。 $ serv->スタート();
taskClient.php
$クライアント = 新しい swoole_client(SWOOLE_SOCK_TCP、SWOOLE_SOCK_ASYNC)。 $クライアント - >上の(、 "接続" 機能($のCLI ){ $ CLI - >送信( "こんにちは世界\ nを" ); }); $クライアント - >オン( "受信"、関数($ CLI、$データ){ エコー "を受信:{ $データ } \ n" ; }); $クライアント - > ON( "エラー"、関数($ CLI ){ エコー "失敗\ nを接続" ; }); 機能($ CLI ){ エコー "接続クローズの\ nを" ; }); $クライアント - >( "127.0.0.1"、9502、0.5)を接続します。