以下は、cometの実装を成功させるために使用するコードです。
$lastmodif = isset($this->params['form']['timestamp']) ? $this->params['form']['timestamp'] : 0;
$currentmodif = $already_updated[0]['Update']['lastmodified'];
while ($currentmodif <= $lastmodif)
{
usleep(5000000);
clearstatcache();
$already_updated_new = $this->Update->find('all',array
(
'conditions' => array
(
'Update.receiver_id' => $this->Auth->user('id'),
'Update.table_name' => "request_responses"
)
));
$currentmodif = $already_updated_new[0]['Update']['lastmodified'];
}
$already_updated[0]['Update']['lastmodified']
テーブルの最後に更新されたタイムスタンプを取得するためのクエリ結果です。
上記のコードでは、$lastmodifと$currentmodifは、彗星の応答が成功するたびに渡されるタイムスタンプです。
しかし、今の問題は、同じページの他のリンクをクリックしても何も起こらないということです。
usleepが他のHTTP
リクエストをブロックしていると思います。
私はmysqlとcakephpを使用しています。この問題を解決するために何をすべきかを教えてください。
ページが呼び出されたときにフラッシュしようとしましたが、出力がすでに送信されているため、ヘッダーエラーを変更できないことが示されています。
ありがとう。