длинный опрос – каковы методы определения наличия новых данных?

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

Вопрос

Допустим, у меня есть программа чата, которая каждый раз, когда кто-то отправляет сообщение, глобальный файл блокируется и в него записывается.У принимающего клиента есть ожидающий запрос xmlhttp, который ожидает возврата с недавно обновленным файлом, используя эту конструкцию:

while (!hasNewdata())
{    sleep 3;    }
print "$thenewdata";
sub hasNewData()
{
     # determine if global file has been appended to.
}

Будет ли отправка размера файла клиенту, а затем обратно на сервер в следующем запросе опроса, хорошим способом сделать это, поскольку теперь мы можем проверить, отличается ли размер файла от того, что уже было отправлено обратно клиенту, поэтому мы знаю, что есть новые данные.Или лучше было бы отправлять смещение файла туда и обратно, чтобы он знал, где в файле проверять наличие новых данных?Или совершенно другой метод, отличный от использования глобального файла чата?

Каковы общие методы определения «доступных новых данных»?

Это было полезно?

Решение

Вы можете использовать дату изменения.

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

Другие советы

Размер файла не так уж и плох.

Браузеры вполне могут уже помечать запросы тегами заголовков «if-modified-since».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top