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

# Invitaciones de lobby

> Envíe y acepte invitaciones de PlayFab Lobby, use agentes de escucha de invitaciones y controle quién puede invitar a otros mediante los privilegios de miembro y propietario del lobby.

Este artículo ofrece una visión general de las invitaciones de Lobby y de cómo usarlas en el SDK de Lobby y Matchmaking.

<Note>
  Solo los jugadores (es decir, las entidades title\_player\_account de PlayFab) pueden enviar o recibir invitaciones. Los servidores de juego (es decir, las entidades game\_server de PlayFab) no pueden. Para obtener más información sobre cómo interactúan los servidores de juego con los lobbies, consulte [Servidores de juego y lobbies](/services/playfab/multiplayer/lobby/lobby-server-overview).
</Note>

## Tipos de invitaciones

Hay dos tipos de invitaciones que es probable que su juego utilice.

1. [Invitaciones dentro del juego](#joining-a-lobby-by-in-game-invites)
2. [Invitaciones de plataforma](#joining-a-lobby-by-platform-invites)

### Unirse a un lobby mediante invitaciones dentro del juego

* Un miembro de un lobby puede invitar a otro jugador a ese lobby directamente a través del servicio de lobby.
* El propietario del lobby puede optar por restringir el envío de invitaciones solo al propietario mediante la propiedad del lobby **RestrictInvitesToLobbyOwner**
* Esta invitación comparte la cadena de conexión del lobby con el jugador invitado.
* El jugador invitado recibe la invitación a través de **PFLobbyInviteReceivedStateChange** y puede usar la cadena de conexión adjunta para unirse al lobby.
* Estas invitaciones funcionan entre plataformas, pero solo funcionan dentro del juego.

### Unirse a un lobby mediante invitaciones de plataforma

* Los miembros del lobby pueden compartir directamente la cadena de conexión del lobby con otros jugadores a través de mecanismos de invitación específicos de la plataforma.
* Estas invitaciones no funcionan entre plataformas, pero se pueden recibir sin que el destinatario esté ya ejecutando el juego.
* Una vez que el jugador invitado recibe la cadena de conexión mediante el mecanismo de la plataforma, puede usar la cadena de conexión adjunta para unirse al lobby.

## Ejemplo de envío y recepción de invitaciones con el SDK de Lobby y Matchmaking

Use **PFMultiplayerStartListeningForLobbyInvites** en el destinatario de la invitación para habilitar la recepción de invitaciones dentro del juego.

El agente de escucha de invitaciones cambiará su estado a **Listening** una vez que se haya configurado correctamente.

```cpp theme={null}
HRESULT AllowInvitations(
    const PFEntityKey* entity)
{
    return PFMultiplayerStartListeningForLobbyInvites(g_pfmHandle, entity);
}

void HandleInvitationListenerStatusChange(
    const PFLobbyInvitationListenerStatusChangedStateChange& invitationListenerStateChange)
{
    PFLobbyInvitationListenerStatus status;
    HRESULT hr = PFMultiplayerGetLobbyInvitationListenerStatus(
        g_pfmHandle,
        &invitationListenerStateChange.listeningEntity,
        &status);
    assert(SUCCEEDED(hr));

    switch (status)
    {
        case PFLobbyInvitationListenerStatus::Listening:
        {
            Log("%s is listening for invitations", invitationListenerStateChange.listeningEntity.id);
            break;
        }
        case PFLobbyInvitationListenerStatus::NotAuthorized:
        {
            Log("Invitation listener not authorized!"); // this is likely an issue with the listener's entity token.
            break;
        }
        default:
    }
}
```

Use **PFLobbySendInvite** para enviar una invitación a otro usuario de PlayFab a través del servicio de lobby.

El destinatario recibirá un **PFLobbyInviteReceivedStateChange**.

```cpp theme={null}
HRESULT SendInvite(PFLobbyHandle lobby, const PFEntityKey* sender, const PFEntityKey* receiver)
{
    return PFLobbySendInvite(lobby, sender, receiver, nullptr);
}

void HandleInvitationNotification(const PFLobbyInviteReceivedStateChange& invite)
{
    Log("%s invited to lobby by %s", invite.listeningEntity.id, invite.invitingEntity.id);
    // pass invite.connectionString to PFMultiplayerJoinLobby
}
```

## Consulte también

* [Lobby y matchmaking](/services/playfab/multiplayer/lobby/lobby-and-matchmaking)
* [Buscar lobbies](/services/playfab/multiplayer/lobby/find-lobbies)
* [Unirse a lobbies](/services/playfab/multiplayer/lobby/join-lobbies)
* [Propiedades del lobby](/services/playfab/multiplayer/lobby/lobby-properties)


## Related topics

- [Uso conjunto de lobby y matchmaking](/es/services/playfab/multiplayer/lobby/lobby-and-matchmaking.md)
- [Unirse a lobbies](/es/services/playfab/multiplayer/lobby/join-lobbies.md)
- [PFMultiplayerStartListeningForLobbyInvites](/es/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/functions/pfmultiplayerstartlisteningforlobbyinvites.md)
- [PlayFabMultiplayer.StartListeningForLobbyInvites](/es/services/playfab/multiplayer/lobby/unity-multiplayer-api-reference/PlayFab.Multiplayer/PlayFabMultiplayer/StartListeningForLobbyInvites.md)
- [PFMultiplayerStopListeningForLobbyInvites](/es/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/functions/pfmultiplayerstoplisteningforlobbyinvites.md)
