コミュニティに対して、私は現在、標準チャンクをそのまま使用してファイルを提供する PHP スクリプトを作成しています。
set_time_limit(0);
ob_clean();
ob_start();
while (SoapService->nextChunk()) {
$chunk=SoapService->chunk();
print $chunk;
ob_flush();
flush();
}
私がやりたいのは、flush() の後に timerReset(); のような何らかのメソッドを追加することです。次に、ある種のタイマーループで:
while (True) {
Sleep(0.30);
if (timerCheckandIncrement() > 100) {
SoapService->notifyClose();
exit(0);
/* or */
SoapService->takeSomeAction();
}
}
このようにして、遠端がパケットの受信を停止したり、ストリームに追いつかなくなったりした場合、次のようなことを行うことができます。 a) エンコード ビットレートを変更します。b) スクリプトを停止し、リソースをクリーンアップ/解放します。
Apache / PHP が Keep-Alive などのヘッダーをネゴシエートできることは認識していますが、それらを正確に活用する方法や実際に使用する方法がわかりません。
AJAX サービスの使用は好ましくありません。ここでの目的は、アプリケーション サーバーを使用して、インターネット経由でファイル サーバーからモバイル デバイスにメディア コンテンツをストリーミングすることです。「アプリ」を作成することも検討しましたが、クロスプラットフォーム コーディング (android/bb/iOS/W7M) と SmallTalk (ObjectiveC) に関する非常に限られた知識により、不要な複雑さが追加されます。