ホームページ >バックエンド開発 >PHPチュートリアル >Web ページで PHP ソケット サーバーを有効にすることはできますか? CLI モードのみを使用して開くのではなく、

Web ページで PHP ソケット サーバーを有効にすることはできますか? CLI モードのみを使用して開くのではなく、

WBOY
WBOYオリジナル
2016-06-23 13:52:281075ブラウズ

最近、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サーバーは稼働中です。リアルタイムで動作を監視するには、重要なログ情報をウィンドウに出力する必要があります



分析と回答をありがとうございました!
Win では、CMD ウィンドウは常に実行されており、閉じることができないため、このウィンドウがデスクトップに表示されると、常に閉じたくなることがあります。 。だからこそ、こんな無慈悲な行動を思いついたのです!
あなたの方法によると、タイムアウト制限を設定した後、Web ページで直接 ws サービスを開き、xampp の netstat で確認します。作成されたプロセスには、追加の 12345 ポート (設定された ws ポート) があります。後で表示される名前 httpd.exe で作成されたということですが、コマンドラインで phpserver.php で作成されたプロセスが php.exe で作成されたということですが、何かデメリットがあるのでしょうか?

特にデバッグ環境ではデメリットはありません
正式なサービスである場合、サーバーのデスクトップに追加のコマンド ウィンドウがあることに何の意味がありますか?サーバー上で毎日の作業を行う方法を誰も知りません

それでは、またよろしくお願いします

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