muhammadaftabb/laravel-realtime-user-status

此软件包最新版本(v1.0.0)没有提供许可证信息。

Laravel 实时用户在线状态软件包

v1.0.0 2024-05-31 21:25 UTC

This package is auto-updated.

Last update: 2024-10-02 20:16:41 UTC


README

Laravel 软件包,用于跟踪和显示实时用户在线状态。

安装

  1. 通过 Composer 需求此软件包
    composer require muhammadaftabb/laravel-realtime-user-status

发布软件包资源和配置

bash 复制代码 php artisan vendor:publish --provider="MuhammadAftab\RealTimeUserStatus\RealTimeUserStatusServiceProvider" --tag=realtime-user-status 运行迁移

bash 复制代码 php artisan migrate 配置 Pusher:将您的 Pusher 凭据添加到 .env 文件中

env 复制代码 PUSHER_APP_ID=your-pusher-app-id PUSHER_APP_KEY=your-pusher-app-key PUSHER_APP_SECRET=your-pusher-app-secret PUSHER_APP_CLUSTER=your-pusher-app-cluster 在布局中包含 JavaScript 文件:将以下脚本标签添加到主布局文件中(例如,resources/views/layouts/app.blade.php)

html 复制代码

<script src="{{ asset('vendor/realtime-user-status/js/realtime-user-status.js') }}" defer></script>

添加中间件:将中间件包含在 app/Http/Kernel.php 中的 web 中间件组中

php 复制代码 protected $middlewareGroups = [ 'web' => [ // 其他中间件... \MuhammadAftab\RealTimeUserStatus\Http\Middleware\UpdateUserStatus::class, \MuhammadAftab\RealTimeUserStatus\Http\Middleware\LogUserActivity::class, ], ]; 用法:使用 Blade 视图中的辅助函数显示在线用户及其最后活动。

显示在线用户 blade 复制代码

在线用户

@foreach(\MuhammadAftab\RealTimeUserStatus\Helpers\RealTimeUserStatusHelper::getOnlineUsers() as $user) {{ $user->name }} - @if($user->is_online) {{ config('realtime-user-status.online_status.online') }} @else {{ str_replace(':time', $user->last_activity->diffForHumans(), config('realtime-user-status.online_status.offline')) }} @endif @endforeach 显示用户活动日志 blade 复制代码

用户活动日志

@foreach(\MuhammadAftab\RealTimeUserStatus\Helpers\RealTimeUserStatusHelper::getUserActivityLogs() as $log) {{ $log->created_at->diffForHumans() }} - {{ $log->user->name }}: {{ $log->activity }} @endforeach 配置:软件包配置文件位于 config/realtime-user-status.php。您可以在那里自定义在线和离线状态消息。

php 复制代码 return [ 'pusher' => [ 'app_id' => env('PUSHER_APP_ID'), 'app_key' => env('PUSHER_APP_KEY'), 'app_secret' => env('PUSHER_APP_SECRET'), 'app_cluster' => env('PUSHER_APP_CLUSTER'), ], 'online_status' => [ 'online' => '在线', 'offline' => '最后看到 :time 之前' ] ]; 许可证:此软件包是开源软件,使用 MIT 许可证授权。