Возможно ли, чтобы ajax вызывал php-скрипт каждые микросекунды, чтобы проверить, изменился ли текстовый файл?

Я нахожусь в процессе создания lapcounter для ипподрома слот-машины.
Всякий раз, когда автомобиль проходит датчик, он отправляет некоторые данные через микроконтроллер на компьютер, который записывает данные в файл. Теперь я хотел бы обнаружить, когда этот файл изменился, то есть автомобиль прошел датчик, и сохранить эти данные в базе данных (mysql), а затем представить их на экране в режиме реального времени. Проверка файла должна выполняться непрерывно и как можно быстрее.

Также было бы неплохо представить таймер, который отсчитывает сотни секунд. Но это другое дело, и оно не имеет ничего общего с этим вопросом …

Возможно, есть лучшие способы сделать это, но я уверен, что это возможно с некоторыми ajax, php и mysql на локальном сервере, который напрямую подключен к микроконтроллеру.

Поправьте меня, если я ошибаюсь, но Facebook, Stackoverflow и мгновенные сообщения / чаты используют похожее будущее, которое я предположил бы …

0

Решение

Логика для изменения файла может быть в конце php ‘check_the_file_change.php’

Ниже приведен код Smaple JS, который отправляет запрос каждую 1 секунду в файл php.

‘Check_the_file_change.php’

 $(document).ready(function(){

function checkFileChange(){

setTimeout(function () {

$.ajax({
url    :'check_the_file_change.php',
type   : 'POST',
data   :{
user_secret : 'XXXX'
},
success : function(respsone){

if(response == "true"){
//file changed
}else{
//file not chnaged
}

},
complete : function(){
checkFileChange(); //net file check after 1 sec from the completion of the previous request
}
});},1000);
}

}

});

В конце PHP

  header("Access-Control-Allow-Origin: *"); // use this in case the ajax call is coming from other domain$filename = 'somefile.txt';

if (file_exists($filename)) {

if( time() - filemtime($filename) > 60){

echo "false";

}else{ //file is modified 1 minute ago

echo "true";

}

}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]