多人同时互动的并发与冲突处理:抢控、分区与公平排队
多人互动先决定谁拥有哪个对象,以及何时释放,再讨论画面效果和并发人数。抢控、分区与排队解决不同问题,不能用一个“支持多人”的宣传词代替所有冲突规则。下面用匿名会话A、B、C给出可执行验收输入,实际容量和公平性仍需指定设备测试。
三类模式先写清边界
| 模式 | 共享什么 | 必须确定 | 不能默认 |
|---|---|---|---|
| 抢控 | 一个主画面或对象 | 所有者、租约、释放条件 | 最先触摸的人永不退出 |
| 分区 | 同屏多个独立区 | 区域归属、边界、跨区规则 | 触点颜色等于业务身份 |
| 排队 | 一个轮流使用的展项 | 入队、去重、退出、顺序 | 断线者仍占队首 |
TUIO session ID只描述输入的存在过程,不等于真实观众身份。需要答题、导出或复盘时,应建立业务会话,并记录触点与会话的关联;多人触摸硬件的标称点数也不等于应用能正确处理同等人数。
抢控:同时拖同一对象
合成用例L1:A在0毫秒按住对象X,B在10毫秒也按X,B随后移动,A在500毫秒释放。若规则是先到先得,则所有者始终A,B移动不得改变X;A释放后应按约定通知可接手。记录输入顺序、对象锁、实际移动和拒绝提示,而不是只录像看对象有没有动。
继续测试A在持锁时失联、同一事件重复投递和旧释放事件迟到。失联释放是应用规则,需要写超时和提示;释放事件若没有会话与锁版本,可能把B刚拿到的新锁误释放。两事件“同时”到达的仲裁方式也要确定,不能声称操作系统自然保证公平。
分区:边界与跨区必须复验
用例Z1:A在左区拖动,B在右区选项,预期两边的数据和对象不串。Z2:A拖动经过边界,分别验证项目选定的保留原归属、裁切或显式转移策略;不允许程序在每帧按当前位置换会话,导致一条手势归属反复变化。
答题展项还要按提交ID核对明细。可用双会话交错答题与计分核对的合成提交表演练重复请求去重。CSV的A=20、B=10是离线预期,不是Quiz后端并发实测。
排队:重复加入与中途退出
用例Q1:A、B、C依次入队,B重复点击加入,期望队列仍只有A、B、C。A完成后轮到B;B在轮到前退出则轮到C。每次变化记录队列版本、入队号、触发来源与当前所有者,前台等待提示和后台顺序必须对应。
继续测试队首断线、重复完成回调、重开会话和管理员取消。等待时长、跳过条件和每轮时限由运营确认;如果只做先来先得,不把它描述成对所有观众都公平的数学保证。
并发与性能另做一组
固定分辨率、素材、输入频率、会话数和目标帧率,记录帧时间、事件丢失、CPU/GPU与内存;单点联调通过不代表峰值可用。合成事件回放可以发现逻辑冲突,但不能替代真实多人操作与设备采样测试。
Quiz公开页提供题型、限时计分与定制入口,SoftTouch按定制工程交付,无公开通用下载包。上述仲裁、锁租约、幂等和队列策略是否已支持,均须写进指定版本或定制范围,不能一概宣传原生可用。
依据:TUIO官方会话语义、Quiz公开功能与SoftTouch交付范围,核对日期2026-10-23。没有真实观众、吞吐或公平性测试结果。
留言讨论
评论发布后会被人工复核,违规内容将被删除。
如果发表没有反应,可以前往联系我们告诉我们。