ホームページ >バックエンド開発 >PHPチュートリアル >PHP ソケット データが待機中、PHP がスタックしている
サーバープログラムがあります。マルチスレッド。 phpを使用してソケット経由で接続します。サーバーはデータを同期的に送受信します。スレッドプール。
さて、質問です。 phpを使用してサーバープログラムに接続する場合。しばらく待つ必要があります。データを返却することができます。
今回は。 phpが解析できません。サーバー プログラムはソケット リクエストを通常どおり処理できますが、PHP 全体が停止するため、データが返されるまで待機する必要があります。データ受信完了後。そうして初めて、php ファイルの解析を続けることができます。
PHP がすべてを停止してこのデータが返されるのを待たなくて済むようにする方法はありますか?
同期送受信なので当然完了を待たなければなりません
Webプログラムの場合は、ajaxを使ってこのphpソケットプログラムを非同期で呼び出して、ページが終了しないようにします。
CLI プログラムの場合は、php の libevent 拡張機能またはマルチスレッド拡張機能 pthreads を追加します
現在のページは停止していません。それよりも。 。 PHP全体が停止します。 。 。データを受信するまで。 。 php は解析を続行できます。
もちろん、非同期を使用しない限り、同期を待つ必要があります。