Устаревший ответ JSON, обслуживаемый

У меня есть устройство IoT, которое загружает файл JSON с веб-сервера. Значение в файле JSON изменяется веб-страницей на основе PHP / HTML. Файл на сервере настроен на 777 разрешений и правильно меняет значение. Однако, когда мое IoT-устройство подключается к серверу для анализа JSON, ему предоставляется копия файла, возраст которого не менее 8 дней. Этот заголовок возвращается:

HTTP/1.1 200 OK.
Content-Length: 15.
Content-Type: application/json.
Server: Apache.
Last-Modified: Mon, 30 Nov 2015 21:28:39 GMT.
Connection: keep-alive.
Date: Tue, 08 Dec 2015 08:22:36 GMT.
.
{"light": "on"}LED ON
closing connection.

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

0

Решение

Так что я думаю, что у вас есть кеширование на сервере больше в вашем IoT устройстве

1) попробуйте проверить свой IoT device если есть кеширование

2) попробуйте проверить конфигурацию сервера, если он имеет некоторое кэширование

если вы потерпите неудачу, то единственный вариант — создать логику, которая всегда будет генерировать уникальную детскую коляску в конце вашей ссылки в IoT deviceи получить JSON с этой ссылкой.

1

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

Благодаря помощи @Armen и большому количеству чтения онлайн. Оказалось, что были две проблемы, которые вызывали это:

Я обнаружил, что в PHP простая запись в файл не изменяет его атрибут «последний измененный», и это вызывало проблемы с сервером, отправляющим неправильную версию файла JSON. Чтобы исправить проблему, я добавил touch("path/to/file.json"); после каждого раза код записывал в файл и закрывал указатель файла. Что он сделал, так это обновил последний измененный атрибут файла, тем самым исправив проблему. Я понимаю, что это, вероятно, что-то очень очевидное, но, будучи самим новичком, я думаю, что с этим могут столкнуться многие новички, поэтому я решил поделиться.

1

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