ロングポーリング - あなたが新しいデータを持って決定するための方法は何ですか?

StackOverflow https://stackoverflow.com/questions/1835275

質問

私は毎回誰かがメッセージを送信チャットプログラムを考えてみましょう、globalfileはロックされたとに書き込まれます。受信側のクライアントは、この構文を使用して、新しく更新されたファイルを返すために待っている保留中のXMLHTTPリクエストがあります:

while (!hasNewdata())
{    sleep 3;    }
print "$thenewdata";
sub hasNewData()
{
     # determine if global file has been appended to.
}
私たちは今、ファイルサイズが既にに送り返されたものと異なっているかどうかを確認することができますように、

ですが、次のポーリング要求でサーバーに戻って、クライアントにファイルサイズを送信すると、これを行うための良い方法であることクライアント私たちは、新たなデータが存在しているはず。またはファイルに新しいデータを確認するためにどこで知っているように、前後にファイルオフセットがより良いアプローチで送るのでしょうか?それとも全く異なる方法、[チャット]グローバルファイルを使用するよりも、他の何か?

「新しいデータが利用可能」を決定する一般的な方法は何ですか
役に立ちましたか?

解決

あなたは、変更日を使用することができます。

$last_modified = filemtime("thisfile.php");

他のヒント

ファイルサイズは、そのような悪い方法ではありません。

「変更した場合-ので、」要求にヘッダ

ブラウザでもすでにタグ付けされる可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top