> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Visão geral da API do Multiplayer Manager

> Visão geral dos métodos e classes mais importantes da API do Multiplayer Manager do XBOX, incluindo sessões de lobby, sessões de jogo, membros e eventos multiplayer.

Este tópico descreve os métodos mais importantes da API do Multiplayer Manager.

Para obter informações detalhadas sobre a API, consulte a [documentação de referência](https://docs.xbox.com/pt-BR/reference/live/gc-reference-live-toc.md).

Para obter exemplos de como usar essas APIs em um aplicativo, consulte o [exemplo NetRumble (tópico sob NDA)](https://learn.microsoft.com/gaming/gdk/docs/services/gdk-dev/development-downloads/gdk-samples-list).

## Namespace

O Multiplayer Manager está incluído no namespace a seguir.

| Linguagem | Namespace |
| - | - |
| C | Prefixo `XblMultiplayerManager*` |
| C++ | `xbox::services::multiplayer::manager` |

Você deve entender as principais classes a seguir.

* [Visão geral da API do Multiplayer Manager]()
  * [Namespace](#namespace)
  * [Classe Multiplayer Manager ](#multiplayer-manager-class)
  * [Classe Multiplayer Event ](#multiplayer-event-class)
  * [Classe Multiplayer Member ](#multiplayer-member-class)
  * [Classe Multiplayer Lobby Session ](#multiplayer-lobby-session-class)
  * [Classe Multiplayer Game Session ](#multiplayer-game-session-class)

## Classe Multiplayer Manager&#x20;

O Multiplayer Manager é uma classe singleton que contém um único objeto de sessão de lobby e um único objeto de sessão de jogo.

No mínimo, você deve chamar os métodos [XblMultiplayerManagerInitialize](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerinitialize.md) e [XblMultiplayerManagerDoWork](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md) dessa classe para que o Multiplayer Manager funcione.

A tabela a seguir descreve alguns, mas não todos, dos métodos e propriedades mais usados. Para obter uma lista completa e descritiva dos membros, consulte a [documentação de referência](https://docs.xbox.com/pt-BR/reference/live/gc-reference-live-toc.md).

| C | C++ | Descrição |
| - | - | - |
| **Métodos** | | |
| [XblMultiplayerManagerInitialize](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerinitialize.md) | `initialize()` | Inicializa o Multiplayer Manager. Você deve chamar esse método antes de usar o Multiplayer Manager. |
| [XblMultiplayerManagerDoWork](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md) | `do_work()` | Atualiza os estados de sessão visíveis para o aplicativo. Você deve chamar esse método pelo menos uma vez por quadro. Seu jogo deve tratar os eventos multiplayer retornados pelo método. |
| [XblMultiplayerManagerJoinLobby](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoinlobby.md) | `join_lobby()` | Fornece uma maneira de ingressar na sessão de lobby de um amigo por meio de um `handleId` que identifica de forma exclusiva o lobby no qual o usuário deseja ingressar, ou quando o usuário aceita um convite que faz com que o título seja ativado por protocolo. |
| [XblMultiplayerManagerJoinGameFromLobby](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingamefromlobby.md) | `join_game_from_lobby()` | Ingressa na sessão de jogo do lobby, se houver uma e se houver espaço. Se a sessão não existir, cria uma nova sessão de jogo com os membros existentes do lobby. Isso não migra as propriedades existentes da sessão de lobby para a sessão de jogo. Depois de ingressar, você pode definir as propriedades ou o host por meio das APIs `*SetSynchronizedProperties`. O título deve chamar essa API em todos os clientes que desejam ingressar na sessão de jogo. |
| [XblMultiplayerManagerJoinGame](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingame.md) | `join_game()` | Ingressa em uma sessão de jogo existente com base em um nome de sessão globalmente exclusivo, normalmente encontrado por meio de serviços de matchmaking de terceiros. Você pode passar a lista de IDs de usuário do XBOX que deseja que façam parte do jogo. |
| [XblMultiplayerManagerFindMatch](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerfindmatch.md) | `find_match()` | Usa o matchmaking dos serviços do XBOX para encontrar um jogo e ingressar nele. |
| [XblMultiplayerManagerLeaveGame](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerleavegame.md) | `leave_game()` | Sai de um jogo e retorna o membro e todos os membros locais ao lobby. |
| **Propriedades** | | |
| `LobbySession` | `lobby_session()` | Um identificador para um objeto que representa a sessão de lobby. |
| `GameSession` | `game_session()` | Um identificador para um objeto que representa a sessão de jogo. |

## Classe Multiplayer Event&#x20;

| Linguagem | Classe |
| - | - |
| C | [XblMultiplayerEvent](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayerevent.md) |
| C++ | `multiplayer_event` |

Quando você chama [XblMultiplayerManagerDoWork](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md), o Multiplayer Manager retorna uma lista de eventos que representam as alterações nas sessões desde a última chamada a `XblMultiplayerManagerDoWork`. Esses eventos incluem alterações como um membro que ingressou em uma sessão, um membro que saiu de uma sessão, propriedades de membros que mudaram ou a mudança do cliente host.

Para obter uma lista de todos os tipos de evento possíveis, consulte a enumeração [XblMultiplayerEventType](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/enums/xblmultiplayereventtype.md).

Cada [XblMultiplayerEvent](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayerevent.md) retornado inclui um `EventArgsHandle`. Você deve usá-lo para obter os `args` apropriados para o tipo de evento. Por exemplo, se o [XblMultiplayerEventType](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/enums/xblmultiplayereventtype.md) for `MemberJoined`, você chamaria [XblMultiplayerEventArgsMembersCount](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayereventargsmemberscount.md) e [XblMultiplayerEventArgsMembers](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayereventargsmembers.md).

Seu jogo deve tratar cada um dos eventos conforme necessário após chamar [XblMultiplayerManagerDoWork](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md).

## Classe Multiplayer Member&#x20;

| Linguagem | Classe |
| - | - |
| C | [XblMultiplayerManagerMember](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayermanagermember.md) |
| C++ | `multiplayer_member` |

Essa classe representa um jogador em uma sessão de lobby ou de jogo. Ela contém propriedades sobre o membro, como o ID de usuário do XBOX do jogador, o endereço de conexão de rede do jogador e propriedades personalizadas de cada jogador.

## Classe Multiplayer Lobby Session&#x20;

| Linguagem | Classe |
| - | - |
| C | Prefixo `XblMultiplayerManagerLobbySession*` |
| C++ | `multiplayer_lobby_session` |

Essa classe cria uma sessão persistente usada para gerenciar os usuários locais deste dispositivo e os amigos convidados que desejam jogar juntos. Uma sessão de lobby deve conter pelo menos um membro para que o Multiplayer Manager execute qualquer ação multiplayer. Inicialmente, você pode criar uma nova sessão de lobby chamando o método [XblMultiplayerManagerLobbySessionAddLocalUser](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionaddlocaluser.md).

A tabela a seguir descreve alguns, mas não todos, dos métodos e propriedades mais usados dessa classe. Para obter uma lista completa e descritiva dos membros da classe, consulte a [documentação de referência](https://docs.xbox.com/pt-BR/reference/live/gc-reference-live-toc.md).

| C | C++ | Descrição |
| - | - | - |
| **Métodos** | | |
| [XblMultiplayerManagerLobbySessionAddLocalUser](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionaddlocaluser.md) | `add_local_user()` | Adiciona um usuário local (um jogador que entrou no dispositivo local) à sessão de lobby. Se esse for o primeiro membro adicionado a uma sessão de lobby, esse método criará uma nova sessão de lobby. |
| [XblMultiplayerManagerLobbySessionRemoveLocalUser](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionremovelocaluser.md) | `remove_local_user()` | Remove um membro especificado da sessão de lobby e de jogo. |
| [XblMultiplayerManagerLobbySessionInviteFriends](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessioninvitefriends.md) | `invite_friends()` | Abre uma interface do usuário padrão do XBOX que permite ao jogador selecionar amigos na lista de amigos e, em seguida, convida esses jogadores para o jogo. |
| [XblMultiplayerManagerLobbySessionInviteUsers](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessioninviteusers.md) | `invite_users()` | Convida os jogadores do XBOX especificados para o jogo. |
| [XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetlocalmemberconnectionaddress.md) | `set_local_member_connection_address()` | Define o endereço de rede do membro local. Os jogos podem usar esse endereço de rede para estabelecer comunicações de rede entre os membros. |
| [XblMultiplayerManagerLobbySessionSetLocalMemberProperties](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetlocalmemberproperties.md) | `set_local_member_properties()` | Define uma propriedade personalizada para um membro local. A propriedade é armazenada em uma cadeia de caracteres JSON. |
| [XblMultiplayerManagerLobbySessionDeleteLocalMemberProperties](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessiondeletelocalmemberproperties.md) | `delete_local_member_properties()` | Remove uma propriedade personalizada de um membro local. |
| [XblMultiplayerManagerLobbySessionSetProperties](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetproperties.md) / [XblMultiplayerManagerLobbySessionSetSynchronizedProperties](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetsynchronizedproperties.md) | `set_properties()` / `set_synchronized_properties()` | Define uma propriedade personalizada para a sessão de lobby. A propriedade é armazenada em uma cadeia de caracteres JSON. Se a propriedade for compartilhada entre dispositivos e puder ser atualizada por vários dispositivos ao mesmo tempo, use a versão sincronizada do método. |
| [XblMultiplayerManagerGameSessionIsHost](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionishost.md) | `is_host()` | Indica se o dispositivo atual está atuando como host do lobby. |
| [XblMultiplayerManagerGameSessionSetSynchronizedHost](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedhost.md) | `set_synchronized_host()` | Define o host do lobby. |
| **Propriedades** | | |
| [XblMultiplayerManagerLobbySessionLocalMembers](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionlocalmembers.md) | `local_members()` | A coleção de membros que entraram no dispositivo local. |
| [XblMultiplayerManagerLobbySessionMembers](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionmembers.md) | `members()` | A coleção de membros que estão na sessão de lobby. |
| [XblMultiplayerManagerLobbySessionSetProperties](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetproperties.md) | `properties()` | Um objeto JSON que representa uma coleção de propriedades da sessão de lobby. |
| [XblMultiplayerManagerLobbySessionHost](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionhost.md) | `host()` | O membro host do lobby. |

## Classe Multiplayer Game Session&#x20;

| Linguagem | Classe |
| - | - |
| C | Prefixo `XblMultiplayerManagerGameSession*` |
| C++ | `multiplayer_game_session` |

A sessão de jogo representa o grupo de membros dos serviços do XBOX que estão participando de uma instância de jogabilidade real. Isso pode incluir jogadores que foram combinados por meio de serviços de matchmaking.

Para iniciar uma nova sessão de jogo que inclua membros da sessão de lobby, chame [XblMultiplayerManagerJoinGameFromLobby](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingamefromlobby.md). Se quiser usar o matchmaking dos serviços do XBOX, chame [XblMultiplayerManagerFindMatch](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerfindmatch.md). Se estiver usando um serviço de matchmaking de terceiros, chame [XblMultiplayerManagerJoinGame](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingame.md).

A tabela a seguir descreve alguns, mas não todos, dos métodos e propriedades mais usados do Multiplayer Manager. Para obter uma lista completa e descritiva dos membros da classe, consulte a referência da API dessa classe.

| C | C++ | Descrição |
| - | - | - |
| **Métodos** | | |
| [XblMultiplayerManagerGameSessionSetProperties](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetproperties.md) / [XblMultiplayerManagerGameSessionSetSynchronizedProperties](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedproperties.md) | `set_properties()` / `set_synchronized_properties()` | Define uma propriedade personalizada para a sessão de jogo. A propriedade é armazenada em uma cadeia de caracteres JSON. Se a propriedade for compartilhada entre dispositivos e puder ser atualizada por vários dispositivos ao mesmo tempo, use a versão sincronizada do método. |
| [XblMultiplayerManagerGameSessionIsHost](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionishost.md) | `is_host()` | Indica se o dispositivo atual está atuando como host do jogo. |
| [XblMultiplayerManagerGameSessionSetSynchronizedHost](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedhost.md) | `set_synchronized_host()` | Define o host do jogo. |
| **Propriedades** | | |
| [XblMultiplayerManagerGameSessionMembers](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionmembers.md) | `members()` | A coleção de membros que estão na sessão de jogo. |
| [XblMultiplayerManagerGameSessionPropertiesJson](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionpropertiesjson.md) | `properties()` | Um objeto JSON que representa uma coleção de propriedades da sessão de jogo. |
| [XblMultiplayerManagerGameSessionHost](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionhost.md) | `host()` | O membro host do jogo. |


## Related topics

- [Visão geral do Multiplayer Manager](https://docs.xbox.com/pt-BR/services/xbox-services/multiplayer/mpm/live-multiplayer-manager-overview.md)
- [Conceitos do Multiplayer Manager](https://docs.xbox.com/pt-BR/services/xbox-services/multiplayer/mpm/concepts/live-mm-concepts-nav.md)
- [Visão geral da API Achievements Manager do XBOX](https://docs.xbox.com/pt-BR/services/xbox-services/player-data/achievements/achievements-manager/live-achievements-manager-overview.md)
- [Visão geral do Social Manager](https://docs.xbox.com/pt-BR/services/xbox-services/community/social-manager/live-social-manager-overview.md)
- [Visão geral da API C do Services - PFMultiplayerServer.h](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfmultiplayerserver/pfmultiplayerserver_members.md)
