Hej,
aby uzyskać informację kto jest on-line zrobiłem coś takiego
- Utworzyłem middleware
public function handle($request, Closure $next)
{
if(Auth::check())
{
$expiresAt = Carbon::now()->addMinutes(5);
Cache::put('user-is-online-' . Auth::user()->id, true, $expiresAt);
}
return $next($request);
}
- Do modelu usera dodałem
public function isOnline()
{
return Cache::has('user-is-online-' . $this->id);
}
- podpiąłem middleware
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\LogLastUserActivity::class,
],
i na liście userów
@if($user->isOnline())
<li class="text-success">
Online
</li>
@else
<li class="text-muted">
Offline
</li>
@endif
w czym jest problem?
otwieram sobie np. dwie przeglądarki i loguję się do aplikacji. W każdej przeglądarce widzę onLine tylko przy uzytkowniku, na którego jestem zalogowany. Czyli zamiast dwóch widzę jednego. Innego w każdej przeglądarce. Co robię źle?