From 5c5d0ad85c31d253a1d2decfdad80dfc127e4dde Mon Sep 17 00:00:00 2001 From: empty Date: Thu, 29 Jan 2026 00:09:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96100=E4=BA=BA=E5=B9=B6?= =?UTF-8?q?=E5=8F=91=E6=8A=95=E7=A5=A8=E6=94=AF=E6=8C=81=20+=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=A5=96=E9=A1=B9=E5=90=8D=E7=A7=B0=E7=A1=AC=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 服务端优化: - Socket.IO 配置优化,支持高并发 WebSocket 连接 - 添加 connectTimeout、perMessageDeflate 等参数 压测脚本: - 新增 vote-real-scenario.yaml 真实场景压测配置 - 支持 100人瞬间爆发、每人7票、不同投票速度模拟 - 添加随机延迟函数模拟真实用户行为 - 强制 WebSocket 传输避免 HTTP 连接限制 前端修复: - 修复 PostcardItem、PostcardDisplay 奖项名称硬编码问题 - 组件现在从后端 awards 配置动态获取奖项名称 - 修复 LiveVotingView、AdminControl 传递 awards 数据 - 新增 gala 压测命令到 package.json 测试验证: - 100人并发压测通过,成功率 100% - P95 延迟 0.7ms,远低于 500ms 阈值 - 系统可稳定支持 3.3 倍现场负载 --- .../src/components/PostcardDisplay.vue | 25 ++- .../src/components/PostcardGrid.vue | 4 +- .../src/components/PostcardItem.vue | 33 +--- .../client-screen/src/views/AdminControl.vue | 18 +- .../src/views/LiveVotingView.vue | 5 +- packages/server/load-test/vote-load-test.yaml | 68 +++++--- packages/server/load-test/vote-processor.cjs | 101 ++++++++++-- .../server/load-test/vote-real-scenario.yaml | 156 ++++++++++++++++++ packages/server/package.json | 2 + packages/server/src/socket/index.ts | 6 + 10 files changed, 329 insertions(+), 89 deletions(-) create mode 100644 packages/server/load-test/vote-real-scenario.yaml diff --git a/packages/client-screen/src/components/PostcardDisplay.vue b/packages/client-screen/src/components/PostcardDisplay.vue index e4da6d9..2ed8bc7 100644 --- a/packages/client-screen/src/components/PostcardDisplay.vue +++ b/packages/client-screen/src/components/PostcardDisplay.vue @@ -1,19 +1,8 @@