| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- <?php
- /*
- | 后台实时推送(订单 / 用户列表)。完整说明见 docs/admin-websocket.md。
- | 业务写入在事务提交后登记到 admin_realtime_events,常驻命令 admin-realtime:relay
- | 读取事件、解析成列表行,经 Laravel 广播(Reverb)推给已登录且有权限的后台管理员。
- */
- return [
- // 关闭时不登记任何事件,未执行迁移或未启动 Reverb 与 relay 时保持关闭
- 'enabled' => (bool) env('ADMIN_WS_ENABLED', false),
- // 广播连接名,见 config/broadcasting.php
- 'connection' => env('ADMIN_WS_BROADCASTER', 'reverb'),
- // 前端 Laravel Echo 的连接参数,随 GET /admin/realtime/config 返回;
- // REVERB_HOST/PORT/SCHEME 是 Laravel 访问 Reverb 的内网地址,二者通常不同
- 'client' => [
- 'key' => env('REVERB_APP_KEY'),
- 'host' => env('ADMIN_WS_PUBLIC_HOST', ''),
- 'port' => (int) env('ADMIN_WS_PUBLIC_PORT', 443),
- 'scheme' => env('ADMIN_WS_PUBLIC_SCHEME', 'https'),
- ],
- // relay 无新事件时的轮询间隔(毫秒)与单批处理的事件数
- 'poll_ms' => (int) env('ADMIN_WS_POLL_MS', 1000),
- 'batch_size' => (int) env('ADMIN_WS_BATCH_SIZE', 200),
- // 跳过的小 id 可能是写入方事务尚未提交,在该时长内仍会补发(秒)
- 'gap_seconds' => (int) env('ADMIN_WS_GAP_SECONDS', 60),
- // 断线补发单次最多返回的事件数,超过则要求前端重新拉列表
- 'replay_limit' => (int) env('ADMIN_WS_REPLAY_LIMIT', 1000),
- // 管理员可订阅频道的缓存时长(秒),按钮权限变更最迟在此时长后生效
- 'permission_cache_seconds' => (int) env('ADMIN_WS_PERMISSION_CACHE_SECONDS', 60),
- // 在线状态扫描间隔(秒),由 relay 顺带执行
- 'online_scan_seconds' => (int) env('ADMIN_WS_ONLINE_SCAN_SECONDS', 15),
- // 事件表保留时长(小时),也是断线补发能回溯的最长时间
- 'retention_hours' => (int) env('ADMIN_WS_RETENTION_HOURS', 72),
- ];
|