djl997/laravel-actor-is-active

一个将在线状态设置为actor模型(大多数情况下是用户)的包。

0.1.2 2024-04-05 09:36 UTC

This package is auto-updated.

Last update: 2024-09-05 10:33:39 UTC


README

Latest Version on Packagist Total Downloads Software License

此包提供了一种简单易行的方法来检查您的应用中的actor(大多数情况下是用户)是否在线或最近在线。在某些情况下,actor可以是某些逻辑,例如机器人、变量Cronjob、队列或其他您想监控的外部进程。

由于它基于Laravel缓存驱动程序,因此此包不需要任何数据库迁移。

要求

Laravel Actor is Online 需要 PHP 8+ 和 Laravel 6+。

安装

  1. 您可以通过composer安装此包

    composer require djl997/laravel-actor-is-active
  2. 准备actor模型

    namespace App\Models;
    
    use Djl997\LaravelActorIsActive\Traits\IsOnlineTrait;
    
    class Actor {
    
        use IsOnlineTrait;
    
        // ..
    
    }
  3. 设置在线状态

路由中间件(推荐用于Authenticables)

要自动更新您的应用程序中用户的在线状态,请将以下内容添加到您的 app/Http/Kernel.php 文件中

protected $middlewareGroups = [
    'web' => [
        // ..
        \Djl997\LaravelActorIsActive\Http\Middleware\IsOnline::class,
    ]
];

手动

如果您想手动更新状态或中间件在您的案例中不适用

$model = Model::find(1);

$model->touchOnline();

高级用法

$user = User::find(1);

$user->isOnline(); // returns true if user is online
$user->wasOnlineRecently(); // returns true if user was inline x minutes ago (by default 5-30 minutes, customizable via config)
$user->lastOnlineAt(); // returns Carbon object of last online timestamp
$user->getCacheActorOnlineKey(); // get the online cache key

贡献

欢迎贡献。

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。