Customer Case

高并发现场答题互动系统

为某大型企业年会打造的现场答题系统,支持扫码报名、多轮次答题、军团排行与大屏实时联动,基于 XYGo Admin + WebSocket 节流广播,单场 3000+ 人同时作答,榜单延迟控制在 1 秒内。

项目背景

客户每年举办大型现场活动,需要数百至数千观众同时用手机答题,大屏即时展示排行榜与选项分布。传统轮询方案扛不住峰值,要求低延迟、防重复提交、主持人可控轮次。

核心功能

  • 📱 扫码报名,按军团分组入场
  • ✍️ 多轮次答题,选手异步进度
  • 🏆 实时个人榜 / 军团榜与大屏 podium 展示
  • 📊 题目选项投票分布动态刷新
  • 🎬 主持人控场:发题、切轮、结算

技术亮点

  • GoFrame + MySQL 承载活动、轮次、题目与答题记录,轮次状态机驱动业务流程
  • WebSocket 按活动 Tag 推送,500ms 节流合并 rank_update / vote_update,避免千人同时提交时的广播风暴
  • 乐观锁提交submitted_at = 0 条件更新)防止重复作答;Redis 队列异步处理统计任务
  • Vue3 大屏 + H5 答题页 双端 WebSocket 订阅,全屏投放与手机端同步无刷新

项目成果

指标 数据
单场并发答题 3000+ 人
榜单刷新延迟 < 1 秒
重复提交 0 容忍

附:高并发架构要点

层级 方案
接入 WebSocket 长连接,按活动 code 分 Tag 订阅
写入 答题提交走 HTTP,DB 乐观锁保证幂等
推送 标记 dirty → 500ms 定时批量广播榜单与投票
缓存/队列 Redis 缓存在线数 + List 队列削峰
前端 大屏 WS 驱动 UI,HTTP 轮询仅作在线人数兜底

继续了解 XYGo Admin