v1.1.0
最新
2021.3+

接口 IRelayService

Relay 分配服务使客户端能够连接到中继服务器。连接后,他们能够通过中继服务器使用定制的中继二进制协议相互通信。

命名空间Unity.Services.Relay
语法
public interface IRelayService

方法

CreateAllocationAsync(Int32, String)

在可用的中继服务器上创建分配。如果提供了区域,分配服务将在该区域中查找中继服务器,否则,它将使用默认区域。分配服务将根据已解析区域的可用容量和服务器运行状况确定最佳可用中继服务器。如果在该请求的生命周期内无法找到中继服务器,调用者应重试。该端点返回分配的唯一 ID(可用于生成加入代码)、为分配选择的中继服务器的详细信息、调用者的加密连接数据以及用于构建 BIND 消息 HMAC 所需的密钥。

声明
Task<Allocation> CreateAllocationAsync(int maxConnections, string region = null)
参数
类型名称描述
Int32maxConnections

指示客户端允许与其通信的最大连接数。它还将用于查找具有足够容量的中继。

Stringregion

指示首选区域以创建分配。

返回值
类型描述
Task<Allocation>

分配(可用于生成加入代码)、为分配选择的中继服务器的详细信息、调用者的加密连接数据以及用于构建 BIND 消息 HMAC 所需的密钥。

备注

创建此分配的玩家充当主机。分配创建后,主机调用 GetJoinCode 以获取一个加入代码,然后他们可以将该代码与其他玩家共享。

GetJoinCodeAsync(Guid)

返回给定分配 ID 的“加入代码”。“加入代码”可以被认为是客户端连接数据的简写查询。连接数据将通过分配 ID 和加入代码之间的映射从客户端的分配中检索。加入代码旨在用于玩家协调他们进入逻辑房间或会话。创建初始分配的玩家充当主机。主机调用此方法以获取一个加入代码,然后他们可以将该代码与其他玩家共享。加入代码可以被其他玩家使用,让他们调用 JoinAllocation 以连接到中继服务器,他们可以通过该服务器与主机通信。主机在生成要共享的加入代码之前,无需向中继服务器执行 BIND 调用。

声明
Task<string> GetJoinCodeAsync(Guid allocationId)
参数
类型名称描述
GuidallocationId

先前创建的分配的分配 ID。

返回值
类型描述
Task<String>

一个“加入代码”,与其他玩家共享,以便他们可以连接到中继并与主机通信。

JoinAllocationAsync(String)

允许玩家使用加入代码加入中继服务器。加入代码是一个简写代码,用于查找创建它的玩家(称为“主机”)的连接数据。通过执行此查询,可以确定原始玩家连接到的中继的 IP 和端口。然后,可以将调用该端点的玩家分配到同一中继。该端点返回此分配的详细信息,以及主机玩家的连接详细信息。这可用于与主机建立通信。

声明
Task<JoinAllocation> JoinAllocationAsync(string joinCode)
参数
类型名称描述
StringjoinCode

主机玩家与其他玩家共享的“加入代码”。

返回值
类型描述
Task<JoinAllocation>

分配为分配选择的中继服务器的详细信息、调用者的加密连接数据以及用于构建 BIND 消息 HMAC 所需的密钥。

ListRegionsAsync()

列出所有具有中继服务器的可用区域。此列表比实际的中继服务器可用性更稳定,也就是说,不能保证在列出的每个区域中都会有中继服务器准备好处理分配。

声明
Task<List<Region>> ListRegionsAsync()
返回值
类型描述
Task<List<Region>>

可能提供中继服务器的区域列表。