1.6 KiB
1.6 KiB
联网协议
传输
- TCP:默认端口
18140。 - KCP:默认端口
18141。 - UDP 房间发现:默认端口
18142。 - 直接 IP 在端口可达时可用于局域网或公网;不提供匹配、NAT 穿透或账号系统。
Unity 内置 Host 与 .NET 独服使用同一个 ReplacedRoomAuthority 和 ReplacedMatchEngine。消息体是 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-mod、unexpected-mod、version、missing-file、unexpected-file 或 hash 差异,并拒绝准备。
房间创建时冻结内容快照。热重载只更新之后创建的房间或下一场单机对局,不修改进行中的状态机。
断线和超时
- 断线后席位保留 30 秒。
- 连续两个回合超时判负。
- 客户端重连后以权威快照和状态哈希恢复,不在客户端补算遗漏骰点。