チャット スクリプトを作成しようとしていますが、訪問者のブラウザが 0.5 秒ごとに新しいメッセージを要求するのは望ましくありません。代わりに、サーバーが新しいメッセージをすぐに送信するようにします。
サーバーにリクエストを送信できると思いました。新しいメッセージがない場合、サーバーは新しいメッセージがあるまで待機します。この待機時間は長くする必要はありません。おそらく 2 ~ 3 秒です。
PHPのsleep()
機能を試しました:
while(1)
{
$temp=$db->query("SELECT * FROM chat WHERE (id=36 OR id=12) AND clock>".$last_time);
if ($temp->rowCount()!=0) break;
sleep(1);
}
この「割り込みまで待機」プロセスは、他の訪問者がループを中断したときに機能しますが、ループを開始した訪問者がメッセージを送信しようとすると、永遠に待機します。
私はこれについて間違った方法で進んでいますか?
EDIT *システムはIIS 7 - PHPバージョン5.3.6です