{"title":"server-multitable","subtitle":"","coverImg":"","contentType":"text/plain","content":"== 端到端冒烟:真实服务端进程 + 多桌并发 + 免费整手 ==\n [server] [poker-server] listening on http://127.0.0.1:8891\n [server] [poker-server] engineHash = d8b87237f4b9ec79ed9234843f6c8b1f0f610fc4220998db5bc60b409ea7726a\n [server] [poker-server] settlement = outbox(未配置;space 桌默认拒开)\n [server] [poker-server] ws 通道 = ws://127.0.0.1:8891/ws\n [server] [poker-server] 投递日志 = 未开启(POKER_EVENT_LOG=1 开启)\n [server] [poker-server] 行动超时 = 30000ms(env POKER_ACTION_TIMEOUT_MS,0=关;每桌可覆盖)\n ✓ 服务端进程启动成功\n ✓ 启动日志回带引擎基线哈希\n\n [桌 A] capacity=3 tableId=T-48de7ea66aa2\n ✓ 桌 A(3 人)打满一整手后回到等待态(hand.end ×1)\n ✓ 桌 A 发牌/盲注/底牌事件齐全\n ✓ 桌 A 四轮下注推进至摊牌(street + showdown)\n ✓ 桌 A 每人恰好收到 1 条自己的底牌(1/1/1)\n ✓ 桌 A hand.* 事件 seq 严格递增(无跨桌污染)\n ✓ 桌 A 零 error 应答(实测 0 条)\n ✓ 桌 A 实际产生 12 次客户端动作(≥ 人数 3)\n\n [桌 B] capacity=4 tableId=T-7411a731c0b7\n ✓ 桌 B(4 人)打满一整手后回到等待态(hand.end ×1)\n ✓ 桌 B 发牌/盲注/底牌事件齐全\n ✓ 桌 B 四轮下注推进至摊牌(street + showdown)\n ✓ 桌 B 每人恰好收到 1 条自己的底牌(1/1/1/1)\n ✓ 桌 B hand.* 事件 seq 严格递增(无跨桌污染)\n ✓ 桌 B 零 error 应答(实测 0 条)\n ✓ 桌 B 实际产生 16 次客户端动作(≥ 人数 4)\n\n [桌 C] capacity=6 tableId=T-28745d4a86c1\n ✓ 桌 C(6 人)打满一整手后回到等待态(hand.end ×1)\n ✓ 桌 C 发牌/盲注/底牌事件齐全\n ✓ 桌 C 四轮下注推进至摊牌(street + showdown)\n ✓ 桌 C 每人恰好收到 1 条自己的底牌(1/1/1/1/1/1)\n ✓ 桌 C hand.* 事件 seq 严格递增(无跨桌污染)\n ✓ 桌 C 零 error 应答(实测 0 条)\n ✓ 桌 C 实际产生 24 次客户端动作(≥ 人数 6)\n ✓ 三桌 tableId 互不相同(并发隔离,实测 3 个)\n\n========================================\n冒烟结果: 24 通过 / 0 失败(共 24 项)\n========================================\n","encryption":"0","createTime":1789668556437,"tags":[],"attachments":[]}