← 五子棋 · 连成五子背后的平衡难题 / 联机对战:无后端的 P2P 实现 待审核 4 / 4
online · WebRTC P2P

联机对战:无后端的 P2P 实现

井字棋联机版同一套思路:playground 是纯静态站点、没有后端,联机却仍可行——用 WebRTC 在两个浏览器间直接建一条 RTCDataChannel,落子点对点传输。唯一的难点「建连前两端要先交换连接描述」(信令),这里换成手动复制粘贴一段编码,于是连信令服务器都不需要。房主(执黑、先手)选定规则,落子 / 重开实时同步。

怎么连上:房主选好规则,点「创建邀请码」生成一段 offer → 发给对方 → 对方粘贴后生成 answer 发回 → 房主粘贴并完成连接。通道一开,落子就直接在两个浏览器间点对点传。想本机先试:把本页开两个标签页,一个当房主、一个当加入,在两个标签间互相复制那两段码即可。

连不上的常见原因:本页只配了公共 STUN,没有 TURN 中继。当两端处在对称型 NAT(部分公司 / 校园网)后面时,纯 STUN 打洞会失败——生产环境通常再加一台 TURN 服务器作中继回退。同一局域网或多数家庭网络下可直接连通。联机版只提供自由 / 连珠两套规则;Swap2 的选边协商更适合在本地可玩棋盘体验。