2017-05-04 4 views
1

mjpegをストリーミングしているページがあります。私はmjpegを生成するためにffmpegを使いました。そして、誰かが積極的にページを見ているときに実行するだけのCPUを使用しています。 exec()で始めることを考えていましたが、ページを出ると実行され続け、実際には複数のインスタンスを開始してページに戻ります。phpは、視聴者がページを出るときに終了するプロセスを開始しました。

誰かがページにいなくなったときにプロセスを強制終了する方法はありますか?私の唯一の考えは、シグナルが> 10秒間受信されない場合にプロセスを終了させるサーバー上の別のプログラムにkeep aliveシグナルを送るためにajaxを使用することでしたが、これを行うために複雑ではない方法があるようです。

答えて

1

javascriptから別のリクエストをしない限り、ユーザーがページを離れたときにPHPから知る方法はありません。あなたのajaxリクエストのアプローチは良い考えです。 javascriptイベントonbeforeunloadを使用して、ユーザーがページをアンロードしてプロセスを終了したときにリクエストを行うこともできます。

+0

JavaScriptがオフになっている場合、Javascriptはセキュリティ上の理由から常に失敗し、実行されないことがあります。 –

+0

JavaScriptを使ってストリームを開始して停止させると、そのストリームを有効にしていない人に対処してしまいます。その場合、ブラウザが完全にクラッシュすることを心配する必要があります。 – jeffpkamp

+0

私は、複数の人が見ていると私は気づいたと1つの葉は、他のすべてのためのフィードを殺す...それを回避するためのアイデア? – jeffpkamp

関連する問題