ロングポーリング - あなたが新しいデータを持って決定するための方法は何ですか?
-
11-09-2019 - |
質問
私は毎回誰かがメッセージを送信チャットプログラムを考えてみましょう、globalfileはロックされたとに書き込まれます。受信側のクライアントは、この構文を使用して、新しく更新されたファイルを返すために待っている保留中のXMLHTTPリクエストがあります:
while (!hasNewdata())
{ sleep 3; }
print "$thenewdata";
sub hasNewData()
{
# determine if global file has been appended to.
}
私たちは今、ファイルサイズが既にに送り返されたものと異なっているかどうかを確認することができますように、ですが、次のポーリング要求でサーバーに戻って、クライアントにファイルサイズを送信すると、これを行うための良い方法であることクライアント私たちは、新たなデータが存在しているはず。またはファイルに新しいデータを確認するためにどこで知っているように、前後にファイルオフセットがより良いアプローチで送るのでしょうか?それとも全く異なる方法、[チャット]グローバルファイルを使用するよりも、他の何か?
「新しいデータが利用可能」を決定する一般的な方法は何ですか
解決
あなたは、変更日を使用することができます。
$last_modified = filemtime("thisfile.php");
他のヒント
ファイルサイズは、そのような悪い方法ではありません。
「変更した場合-ので、」要求にヘッダブラウザでもすでにタグ付けされる可能性があります。
所属していません StackOverflow