Conectando-se a um Jogo
Última atualização: 15 de setembro de 2026
Esta página acompanha um cliente Unity desde o "toque em jogar" até "dentro da partida, conversando com outros jogadores", e nomeia cada peça. Se você leu Matchmaking e Salas e Grupos separadamente, é aqui que eles se encaixam em um só fluxo.
Um jogador entra, reserva uma sala (navegando ou pelo nome), abre o seu transporte de jogo no endereço da reserva e apresenta o token dela, e assim que o servidor o admite ele passa a trocar gameplay e mensagens — usando Grupos para chat e presença — até sair.
Os quatro passos
Entrar
Tudo começa com um jogador autenticado, porque a reserva é emitida contra uma sessão de jogador. Qualquer método de login serve — uma conta que retorna, um provedor SSO ou um convidado anônimo. Uma vez logado, o SDK carrega a sessão por você; as chamadas de matchmaking abaixo a usam automaticamente.
Reservar uma sala
Uma reserva é a sua permissão para entrar em uma sala específica. Obtenha uma navegando pelas salas abertas ou nomeando uma sala diretamente. Ambas retornam um PlayServMatchReservation.
using PlayServ.Sdk.Matchmaking;
// Navegue e deixe o jogador escolher:
var page = await PlayServMatchmaking.BrowseRoomsAsync("arena");
var chosen = page.Rooms[0]; // RoomName, Players/Capacity, Region, Connect
// Reserve a sala escolhida (ou qualquer sala que você já conheça pelo nome):
var result = await PlayServMatchmaking.JoinRoomAsync("arena", chosen.RoomName);
var reservation = result.Reservation; // token + dados de conexão
Veja Matchmaking e Salas para filtros de navegação, paginação e o formato completo da reserva. A reserva carrega o nome da sala, um ReservationToken opaco, um ExpiresAt e os dados de Connect do servidor (Host, Port, Transport, ConnectString e Region opcionais).
Uma reserva é de uso único e por tempo limitado. Reserve e conecte-se logo — não a guarde para depois.
Conectar o seu transporte
O PlayServ te entrega onde a sala está e um token que te admite — ele não abre a conexão, porque o seu jogo é dono do seu transporte (Netcode for GameObjects, Unity Transport, Mirror ou o seu próprio). Aponte o seu transporte para o endereço Connect da reserva e apresente o ReservationToken para que o servidor admita este jogador naquela sala.
var c = reservation.Connect; // c.Host, c.Port, c.Transport, c.ConnectString
// configure o SEU transporte Unity para c.Host:c.Port (ou c.ConnectString),
// carregando reservation.ReservationToken para o servidor te admitir
Se você preferir não juntar os passos 2 e 3 à mão, JoinRoomAndConnectAsync reserva a sala e então chama um conector que você fornece com a reserva — você abre o transporte ali. Ele precisa rodar na thread principal da Unity, pois toca objetos de rede da Unity.
await PlayServMatchmaking.JoinRoomAndConnectAsync(
new PlayServJoinRoomRequest { FunctionSlug = "arena", RoomName = chosen.RoomName },
connector: async (res, ct) =>
{
// abra seu transporte para res.Connect, apresentando res.ReservationToken
});
Jogar e conversar com outros jogadores
Uma vez conectado, duas coisas fluem. Gameplay vai pelo seu transporte — isso é entre o seu cliente e o seu game server, no seu netcode. Mensagens e presença — chat, ready-check, "quem está aqui" — vão por Grupos: assine um grupo com a chave da sala, publique eventos para todos nela e trate os eventos que você recebe.
using PlayServ.Sdk.Events;
await PlayServEvents.SubscribeGroupAsync(reservation.RoomName);
PlayServEvents.Subscribe<ChatMessage>(msg => { /* chat, ready-up, etc. */ });
PlayServEvents.PublishForGroup(reservation.RoomName, new ChatMessage { Text = "ready" });
O matchmaking levou o jogador à sala; os grupos deixam todos na sala conversarem. Sair é só fechar o transporte e cancelar a assinatura (ou simplesmente desconectar — a participação no grupo está atrelada à conexão).
Todo o fluxo, do início ao fim
Entrar
Autentique o jogador; o SDK mantém a sessão.
Reservar uma sala
BrowseRoomsAsync e então JoinRoomAsync (ou JoinRoomAsync direto para uma sala conhecida) → uma reserva com dados de conexão.
Conectar
Abra o seu transporte Unity para reservation.Connect, apresentando reservation.ReservationToken.
Jogar
Troque gameplay pelo seu transporte e use um grupo para chat e presença na sala; desconecte para sair.
Próximos passos
- Matchmaking e Salas — o passo 2 em profundidade: navegar, entrar-pelo-nome, a reserva
- Grupos — o passo 4 em profundidade: presença, broadcast e mensagens personalizadas em uma sala
- Hospedagem de Game Server — o servidor que hospeda as salas que você navega e conecta