ホームページ >バックエンド開発 >PHPチュートリアル >Web ページで PHP ソケット サーバーを有効にすることはできますか? CLI モードのみを使用して開くのではなく、
最近、php ソケットに基づいたチャット プログラムに取り組んでいたのですが、次の問題が発生しました。
ws ポートを開くには、CMD で php server.php を使用するだけでポートを開くことができます。 CMD コマンド ライン ウィンドウを閉じることができません。閉じると、ソケット接続が切断されます。
お聞きしたいのですが、この方法を使わずにWebページ上でWSサーバーを開くことは可能でしょうか?どうやってするの?
Web サイトから開くことができますが、以下の問題に注意する必要があります:
1. ポートを繰り返し開くことができないため、server.php が1 回だけ実行されます
2. Web このモードでの PHP のタイムアウト設定は有効です。もちろんタイムアウトしないように設定する必要があります
3. Web サーバーにはタイムアウト制限がありますが、時間は比較的長いです。アプリケーションは長期間データ出力がない場合、一時停止または中断されます
4.server.php が断続的に標準出力を行う場合、問題 3 は解決できます。しかし、それは次の問題を引き起こします
5. phpは標準出力に書き込む際に、リクエスト元への接続がスムーズかどうかをチェックします。リクエストソースが閉じられると、プログラムの実行は終了します
もちろん、このデフォルトの動作を防ぐ方法はあります
実際、コマンドウィンドウの存在は悪いことではありません。少なくとも、それは次のことを示しています。 wsサーバーは動作しています
さらに、wsサーバーは稼働中です。リアルタイムで動作を監視するには、ウィンドウに重要なログ情報を出力する必要があります
Webサイトから開くこともできますが、注意が必要です次の問題があります:
1. ポートを繰り返し開くことができないため、サーバー .php が 1 回だけ実行されるようにする必要があります
2. Web モードでの php のタイムアウト設定は有効です。もちろん、設定する必要があります。タイムアウトしないように
3. Web サーバーにはタイムアウト制限がありますが、時間は比較的長いです。アプリケーションは長期間データ出力がない場合、一時停止または中断されます
4.server.php が断続的に標準出力を行う場合、問題 3 は解決できます。しかし、それは次の問題を引き起こします
5. phpは標準出力に書き込む際に、リクエスト元への接続がスムーズかどうかをチェックします。リクエストソースが閉じられると、プログラムの実行は終了します
もちろん、このデフォルトの動作を防ぐ方法はあります
実際、コマンドウィンドウの存在は悪いことではありません。少なくとも、それは次のことを示しています。 wsサーバーは動作しています
さらに、wsサーバーは稼働中です。リアルタイムで動作を監視するには、重要なログ情報をウィンドウに出力する必要があります
特にデバッグ環境ではデメリットはありません
正式なサービスである場合、サーバーのデスクトップに追加のコマンド ウィンドウがあることに何の意味がありますか?サーバー上で毎日の作業を行う方法を誰も知りません
それでは、またよろしくお願いします