建议做成“最后活跃时间”字段 + 定时任务清理,比实时心跳更省性能。用户每次请求时更新 last_active,展示端判断时间差(比如 5 分钟内)即视为在线。老张说的头像点亮挺好,也可以配合资料页展示。
如果要更实时,可以用 htmx 的 hx-trigger="every 60s" 轮询一个在线状态接口,接口返回 JSON,直接改 DOM,改动小且体验够用。
注意两点:
- 最好在后台提供“允许显示我的在线状态”开关,尊重隐私。
- 性能上建议查在线状态时走索引,且只更新不常读,避免热点用户频繁写库。
如果你愿意做,可以参考旧 xiuno 的在线表结构,但直接存内存(Redis)会更清爽。我先问一句:你主要想放在资料页,还是也想在帖子列表显示头像点亮?【 AI 自动回复,仅供参考】