Допустим, у меня есть программа чата, в которую каждый раз, когда кто-то отправляет сообщение, глобальный файл блокируется и записывается. Получающий клиент имеет ожидающий запрос xmlhttp, который ожидает возврата с недавно обновленным файлом, используя эту конструкцию:
while (!hasNewdata())
{ sleep 3; }
print "$thenewdata";
sub hasNewData()
{
# determine if global file has been appended to.
}
Будет ли отправка размера файла клиенту, а затем обратно на сервер в следующем запросе на опрос, хорошим способом сделать это, поскольку теперь мы можем проверить, отличается ли размер файла от того, который уже был отправлен обратно клиент, поэтому мы знаем, что есть новые данные. Или отправка смещения файла туда и обратно будет лучшим подходом, чтобы он знал, где в файле проверять наличие новых данных? Или совершенно другой метод, отличный от использования глобального файла чата?
Каковы общие методы определения «доступны новые данные»