连接到游戏
最后更新:2026 年 9 月 15 日
本页跟随一个 Unity 客户端,从“点击开始”一直到“进入对局、与其他玩家交流”,并点明每个部件。如果你分别读过匹配与房间和群组,这里就是它们如何合成一个流程。
玩家登录,预订一个房间(浏览或按名字),在预订给出的地址打开你的游戏传输并出示它的令牌,服务器接纳后便开始交换玩法与消息——用群组做聊天 与在场——直到离开。
四个步骤
登录
一切都从一名已认证的玩家开始,因为预订是针对某个玩家会话签发的。任何登录方式都可以——回访账号、SSO 提供方,或匿名访客。登录后,SDK 会替你携带会话;下面的匹配调用会自动用它。
预订房间
预订是你进入某个特定房间的许可。通过浏览开放房间,或直接指名一个房间来获取它。两者都返回一个 PlayServMatchReservation。
using PlayServ.Sdk.Matchmaking;
// 浏览并让玩家挑选:
var page = await PlayServMatchmaking.BrowseRoomsAsync("arena");
var chosen = page.Rooms[0]; // RoomName、Players/Capacity、Region、Connect
// 预订所选房间(或任何你已按名字知道的房间):
var result = await PlayServMatchmaking.JoinRoomAsync("arena", chosen.RoomName);
var reservation = result.Reservation; // 令牌 + 连接信息
浏览过滤、分页与预订的完整形态见匹配与房间。预订携带房间名、一个不透明的 ReservationToken、一个 ExpiresAt,以及服务器的 Connect 信息(Host、Port、Transport,可选的 ConnectString 和 Region)。
预订是一次性且有时限的。预订后尽快连接——不要缓存留待以后。
连接你的传输
PlayServ 给你房间在哪和一个接纳你的令牌——它不打开连接,因为你的游戏拥有自己的传输(Netcode for GameObjects、Unity Transport、Mirror,或你自己的)。把你的传输指向预订的 Connect 地址,并出示 ReservationToken,让服务器把这名玩家接纳进那个房间。
var c = reservation.Connect; // c.Host、c.Port、c.Transport、c.ConnectString
// 把你自己的 Unity 传输配置到 c.Host:c.Port(或 c.ConnectString),
// 并携带 reservation.ReservationToken 以便服务器接纳你
若你不想手动把第 2、3 步串起来,JoinRoomAndConnectAsync 会预订房间,然后用预订调用你提供的连接器(connector)——你在那里打开传输。它必须在 Unity 主线程运行,因为它会触及 Unity 网络对象。
await PlayServMatchmaking.JoinRoomAndConnectAsync(
new PlayServJoinRoomRequest { FunctionSlug = "arena", RoomName = chosen.RoomName },
connector: async (res, ct) =>
{
// 打开你的传输到 res.Connect,并出示 res.ReservationToken
});
游戏,并与其他玩家交流
连接后,有两类内容在流动。玩法走你自己的传输——这是你的客户端与你的游戏服务器之间的事,在你的 netcode 里。消息与在场——聊天、准备确认、“谁在这儿”——走群组:以房间为键订阅一个群组,向其中所有人发布事件,并处理你收到的事件。
using PlayServ.Sdk.Events;
await PlayServEvents.SubscribeGroupAsync(reservation.RoomName);
PlayServEvents.Subscribe<ChatMessage>(msg => { /* 聊天、准备等 */ });
PlayServEvents.PublishForGroup(reservation.RoomName, new ChatMessage { Text = "ready" });
匹配把玩家送进了房间;群组让房间里的每个人交流。离开只是关闭你的传输并取消订阅(或直接断开——群组成员身份绑定到连接)。
完整流程,从头到尾
登录
认证玩家;SDK 保留会话。
预订房间
BrowseRoomsAsync 然后 JoinRoomAsync(或直接对已知房间 JoinRoomAsync)→ 一个带连接信息的预订。
连接
把你的 Unity 传输打开到 reservation.Connect,并出示 reservation.ReservationToken。
游戏
通过你的传输交换玩法,并用群组进行房间内聊天与在场;断开即离开。