diff --git a/app/Http/Controllers/DashController.php b/app/Http/Controllers/DashController.php index 24841c5..9cd9a6d 100644 --- a/app/Http/Controllers/DashController.php +++ b/app/Http/Controllers/DashController.php @@ -118,4 +118,35 @@ public function index() return view('barebone', compact('conteo_hoy','chart', 'conteo_permitido', 'conteo_denegado', 'porcentaje_perm', 'porcentaje_deneg')); } + + public function pollAccessCount(Request $request) + { + // definimos la variable de inicio + $start = time(); + // definimos el tiempo maximo de espera en segundos + $timeout = 30; + // variable para obtener el ultimo conteo + $lastAccessCount = $request->input('lastAccessCount', 0); + + //Iniciar conteo dentro de un ciclo while + + while(true) { + //obtenemos el conteo actual + $accessCount = DB::table('eventos_acceso') + ->whereDate('created_at', Carbon::today()) + ->count(); + + if($accessCount > $lastAccessCount) { + return response()->json(['accessCount' => $accessCount]); + } + + if ((time() - $start) >= $timeout) { + return response()->json(['accessCount' => $lastAccessCount]); + } + + //Dormir medio segundo para volver a verificar + + usleep(500000); + } + } } diff --git a/resources/views/barebone.blade.php b/resources/views/barebone.blade.php index 3f70464..b57da6e 100644 --- a/resources/views/barebone.blade.php +++ b/resources/views/barebone.blade.php @@ -104,7 +104,7 @@
Intentos de acceso hoy
-

{{ $conteo_hoy }}

+

{{ $conteo_hoy }}

@@ -219,6 +219,24 @@ + + diff --git a/routes/web.php b/routes/web.php index d68ec3e..c3ea28c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -22,6 +22,8 @@ Route::get('/principal', [DashController::class, 'index'])->name('dash'); }); +Route::get('/poll-access-count', [DashController::class, 'pollAccessCount'])->name('poll'); + Route::middleware('auth')->group(function () { Route::get('/historial', [EventosController::class, 'index'])->name('eventos'); });