连接流
Connect players through the Allocations service and Relay servers.
阅读时间5 分钟最后更新于 1 个月前
连接流是分配服务在 Relay 服务器上保留空位,以便将玩家分组安排到匹配中的过程。此过程涉及两类玩家:主机玩家和加入玩家。以下列表概述了连接过程的步骤。
- 主机玩家请求分配
- 分配服务选择 Relay 服务器
- 分配服务向主机玩家发送连接数据
- 主机玩家绑定到 Relay 服务器
- 主机玩家请求加入代码
- 分配服务向主机玩家返回加入代码
- 主机玩家与加入玩家共享加入代码
- 加入玩家使用加入代码
- 分配服务向加入玩家发送连接数据
- 加入玩家绑定到 Relay 服务器
- 加入玩家发送连接请求
主机玩家请求分配
主机玩家从分配服务请求分配,从而启动连接流。分配请求中包含分配允许的最大连接数,也可能包含特定地区。如果请求中不包含地区,则分配服务会使用 QoS 为请求选择最佳地区。分配服务选择 Relay 服务器
分配服务收到主机玩家的请求,然后选择合适的 Relay 服务器。Relay 服务器选择取决于允许的最大连接数和地区。 分配服务找到合适的 Relay 服务器后,将在 Relay 服务器上为游戏会话预留空间。此时,Relay 服务器还会生成唯一密钥。Relay 服务器向分配服务返回密钥,同时返回的还有 Relay 服务器 IP、Relay 服务器端口以及连接数据。分配服务向主机玩家发送连接数据
分配服务向主机玩家的游戏客户端发送 Relay 服务器连接数据。主机玩家绑定到 Relay 服务器
主机使用分配请求回复中包含的数据向所选 Relay 服务器发送BINDBINDBIND_RECEIVED主机玩家请求加入代码
在绑定到 Relay 服务器后,主机玩家可以从分配服务请求加入代码。分配服务向主机玩家返回加入代码
分配服务生成加入代码,并将向主机玩家返回加入代码。分配服务返回的加入代码唯一地表示主机玩家向 Relay 服务器的分配,并且允许加入玩家绑定到该 Relay 服务器并连接到主机玩家。主机玩家与加入玩家共享加入代码
主机玩家可通过口头告知、文字消息或 Lobby 等任意方法与其他玩家共享唯一加入代码。为方便共享,加入代码简短易记。 使用加入代码向分配服务发送加入请求的玩家称为加入玩家。加入玩家使用加入代码
加入玩家使用从主机玩家处获得的加入代码向分配服务发送加入请求。分配服务向加入玩家发送连接数据
分配服务使用加入代码查找主机玩家的分配并向加入玩家返回数据。 分配服务的回复中包含 Relay 服务器 IP 地址、Relay 服务器端口、密钥、加密的加入玩家连接数据、加入玩家的分配 ID 以及加密的主机连接数据。加入玩家可以使用密钥进行解密,并使用主机连接数据连接到主机。加入玩家绑定到 Relay 服务器
加入玩家使用分配服务的加入请求回复中包含的连接数据向 Relay 服务器发送BINDBIND_RECEIVED