Я создаю реактивную панель с помощью Laravel / VueJS.Когда приборная панель работает и соединение через сокет установлено, моя идея состоит в том, чтобы синхронизировать всех клиентов с одинаковым идентификатором пользователя, и после повторного подключения я отправляю запрос на конечную точку, и я снова synchronized
.Синхронизация необходима, потому что все пользователи могут фактически изменить некоторые конфигурации на панель инструментов, например, выбрать элементы сетки или изменить их размер или перетащить их в другое место.
Проблема возникает, когда после повторного подключения к сокетам я запускаю запросв базу данных, чтобы получить данные снова, и я получаю тот же ответ, что и для запроса инициализации.Данные не обновляются.
Но когда я снова отключаюсь и подключаюсь еще раз.Данные снова синхронизируются.И я обновляю данные для второго вызова.
Я сделал это из-за заголовков Cache-control, но это мне ничего не дает.
Я пытался изменить заголовки в API.
return response()->json($response, 200, [
'Cache-Control' => 'no-cache, no-store, must-revalidate'
]);
И для axios:
axios.get(payload.url, {
headers: {
'Content-Type': 'application/json',
'Cache-Control' : 'no-cache, no-store, must-revalidate'
}
}).then( response => {
Но это все еще не работает.
Мой красноречивый вызов:
$dashboards = Dashboard::where(
'user_id', '=', $userId
)->with([
'layouts',
'components' => function($query) {
$query->with('config')->with('type');
}
])->get();
Заголовки для первого вызоваВот как:
Cache-Control: must-revalidate, no-cache, no-store, private
Connection: Keep-Alive
Content-Length: 2564
Content-Type: application/json
Date: Sat, 26 May 2018 12:06:34 GMT
Keep-Alive: timeout=5, max=96
Server: Apache/2.4.29 (Win32) OpenSSL/1.1.0g PHP/7.2.1
X-Powered-By: PHP/7.2.1
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 90
Для второго звонка я получаю
Cache-Control: must-revalidate, no-cache, no-store, private
Connection: Keep-Alive
Content-Length: 2564
Content-Type: application/json
Date: Sat, 26 May 2018 12:07:29 GMT
Keep-Alive: timeout=5, max=100
Server: Apache/2.4.29 (Win32) OpenSSL/1.1.0g PHP/7.2.1
X-Powered-By: PHP/7.2.1
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 94
Почему эта синхронизация работает для второго запроса, а не для первого?