ソケット (flask socketio) を使用する python Flask アプリケーションを構築しています。基本的に、クライアントは実行したいコマンドをサーバーに送信します。サーバーはコマンドを実行し、ソケットをクライアント コマンド出力に送信します。
ユーザーからのリクエストを受け付けるハンドラ関数があります。この関数はコマンドを実行し、多くのソケットをクライアントに送り返します。stdout および stderr スレッドを取得するには、スレッドも使用されます。
@socket.on ('run-code')
@authenticated_only
def socket_run_code_request (request):
# run command
# emit socket for each line of output
フラスコアプリがデバッグモードの場合、関数内で発行されたソケットは、関数が終了する前にクライアントに到達します (これは望ましいことです)。しかし、デバッグがオフの場合、すべてのソケットは何らかの形でキューに入れられ、関数の終了後に送信されます。サーバーからのリアルタイムの応答はありません。
実行をクリックします->少し待ちます->出力は次のとおりです
それ以外の:
実行をクリックします->ここに出力の一部があります->ここに別の行があります-> ...
Flask docs を読みましたが、デバッグの説明は次のとおりです。
デバッグ サポートを有効にすると、コードの変更時にサーバーが自動的に再読み込みされ、問題が発生した場合に便利なデバッガーも提供されます。
Flask にすべてをすぐに送信するように指示する方法、またはこれを解決する方法はありますか? フラスコ用のflask-socketioプラグインに関連している可能性があります
あなたのフィードバックに本当に感謝します:)