diff --git a/app/Http/Controllers/TobiiReceiverController.php b/app/Http/Controllers/TobiiReceiverController.php index 31010f4..a0616b1 100644 --- a/app/Http/Controllers/TobiiReceiverController.php +++ b/app/Http/Controllers/TobiiReceiverController.php @@ -4,7 +4,9 @@ use App\Models\TestSessionsModel; use App\Models\TobiiDataModel; +use Carbon\Carbon; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; class TobiiReceiverController extends Controller { @@ -13,8 +15,13 @@ class TobiiReceiverController extends Controller */ public function fetchDataTobii($id_test_sessions) { - $data_tobii = TobiiDataModel::where('id_test_sessions', $id_test_sessions)->latest()->first(); + $data_tobii = TobiiDataModel::where('id_test_sessions', $id_test_sessions)->orderByDesc('timestamp')->first(); if ($data_tobii) { + Log::info('DATA DIAMBIL WEB', [ + 'timestamp_data' => $data_tobii->timestamp, + 'created_at' => $data_tobii->created_at, + 'time_now' => now()->timestamp * 1000 + ]); return response()->json([ 'status' => true, 'msg' => 'Data tobii ditemukan (' . $id_test_sessions . ')', @@ -63,10 +70,14 @@ public function store(Request $request) $data_tobii = TobiiDataModel::create([ 'gaze_x' => $request->gaze_x, 'gaze_y' => $request->gaze_y, - 'timestamp' => now(), + 'timestamp' => Carbon::createFromTimestampMs($request->timestamp), 'is_valid' => $is_valid, 'id_test_sessions' => $request->id_test_sessions, ]); + Log::info('DATA MASUK API', [ + 'timestamp_client' => Carbon::createFromTimestampMs($request->timestamp), + 'time_server' => now()->timestamp * 1000 + ]); return response()->json(['message' => 'Data tobii berhasil disimpan.'], 200); } else { return response()->json(['message' => 'Sesi tes belum aktif.'], 403); @@ -87,8 +98,8 @@ public function store(Request $request) */ public function show(string $id) { - $data_tobii = TobiiDataModel::where('id_test_sessions', $id)->latest()->first(); - if ($data_tobii->timestamp->lt(now()->subSeconds(5))) { + $data_tobii = TobiiDataModel::where('id_test_sessions', $id)->orderByDesc('timestamp')->first(); + if ($data_tobii && $data_tobii->timestamp->lt(now()->subSeconds(20))) { return response()->json([ 'status' => false, 'msg' => 'Data tobii kadaluarsa (' . $id . ')', diff --git a/resources/views/user/pages/tutorial_tes/index.blade.php b/resources/views/user/pages/tutorial_tes/index.blade.php index e809b16..1f881e8 100644 --- a/resources/views/user/pages/tutorial_tes/index.blade.php +++ b/resources/views/user/pages/tutorial_tes/index.blade.php @@ -148,7 +148,7 @@ function showTutorial(step, tutorialId) { async function startPolling() { while(getDataInterval) { await fetchDataTobii(); - await delay(1000); + await delay(300); } }