検索
カレンダー
2020年2月
« 4月    
 1
2345678
9101112131415
16171819202122
23242526272829
ブログメニュー
Amazon検索
キーワード:

PHP経由でwmvを出力しているとMediaPlayerの起動に失敗する

2008年5月25日

PHP経由でwmvを出力していると、MediaPlayerを直接起動するとうまくいかず、ダウンロードなら正常に処理が実行されるという、なんだかよくわからない現象に遭遇しました。

解決するのに少し手間取ったのでメモ。

MediaPlayerとサーバとの通信をパケットキャプチャでみると、ダウンロードとの違いは、MediaPlayerは複数のコネクションを張るということっぽいです。
ということは、2本目以降のコネクションでPHPが途中で止まっているんではないか?と目星をつけてコードを地道に追いかけて行きました。

すると、どうやらsession_startで止まっているようです。

で、Google先生にお伺いしてみると、『セッションデータは、同時書き込みを防ぐためにロックされるため、あ る時点であるセッションの処理ができるスクリプトは、1つだけです。』 と仰るではないですか!うすうす感づいていたんですが、書いているところが地味すぎます…。

結局、時間がかかる処理(今回はwmvの出力)の前に、session_write_close関数を呼んで、セッションのロックを解放することにしました。

・・・PHPのセッションの保存先をファイルではなくメモリとかにすればロックされないんですかね?

(参考資料)
PHPマニュアル: session_write_close

コメントはまだありません »

コメントはまだありません。

TrackBack URL : http://www.meibinlab.jp/nishijima/archives/108/trackback

コメントする