Pular para o conteúdo principal

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.

Todo o fluxo em uma frase

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​

1. Entrarsessão do jogador2. Reservar salanavegar ou pelo nome3. Conectarseu transporte + token4. Jogar e conversargameplay + grupos

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).

observação

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​

1

Entrar

Autentique o jogador; o SDK mantém a sessão.

2

Reservar uma sala

BrowseRoomsAsync e então JoinRoomAsync (ou JoinRoomAsync direto para uma sala conhecida) → uma reserva com dados de conexão.

3

Conectar

Abra o seu transporte Unity para reservation.Connect, apresentando reservation.ReservationToken.

4

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