Files
2026-08-17 18:18:13 +08:00

1.6 KiB

联网协议

传输

  • TCP:默认端口 18140
  • KCP:默认端口 18141
  • UDP 房间发现:默认端口 18142
  • 直接 IP 在端口可达时可用于局域网或公网;不提供匹配、NAT 穿透或账号系统。

Unity 内置 Host 与 .NET 独服使用同一个 ReplacedRoomAuthorityReplacedMatchEngine。消息体是 UTF-8 JSON,底层 TCP/KCP 传输负责完整包边界。

消息

Kind 用途
Create 创建房间并占用席位
Join 加入房间;房间为空时独服可按配置创建
Ready 设置准备状态
Deck 提交并校验 12+4 牌组
MatchCommand 提交回合指令
MatchSnapshot 玩家裁剪快照、房间状态和状态哈希
MatchEvent 成功、重复包等权威结果
Reconnect 在 30 秒席位保留期内重新绑定
Error 结构化错误码和差异详情

所有对局指令包含玩家序号和幂等令牌。已接受令牌的重发返回 Duplicate=true,不会重复结算。快照只保留对手隐藏区的数量,不暴露卡牌 ID。

Mod 握手

加入请求携带所有启用 Mod 的 ID、版本及文件 SHA-256。权威端逐文件比较,报告 missing-modunexpected-modversionmissing-fileunexpected-filehash 差异,并拒绝准备。

房间创建时冻结内容快照。热重载只更新之后创建的房间或下一场单机对局,不修改进行中的状态机。

断线和超时

  • 断线后席位保留 30 秒。
  • 连续两个回合超时判负。
  • 客户端重连后以权威快照和状态哈希恢复,不在客户端补算遗漏骰点。