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

# Hub SignalR des messages en temps réel

> Connectez les clients PlayFab Lobby et Matchmaking au hub SignalR des messages en temps réel, notamment la configuration de HubConnection, l'encodage MsgPack et les intervalles KeepAlive.

<Note>
  Les API REST et SignalR documentées ici sont plus complexes que les SDK clients. Envisagez plutôt d'utiliser le [SDK C++ Lobby](/fr/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/pflobby_members) ou le [SDK C++ Matchmaking](/fr/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmatchmaking/pfmatchmaking_members), sauf si ces SDK ne répondent pas à vos besoins.
</Note>

La fonctionnalité de messages en temps réel des [services Lobby et
Matchmaking](/fr/services/playfab/multiplayer/lobby/lobby-and-matchmaking) fonctionne par l'intermédiaire d'un
[service SignalR](https://learn.microsoft.com/en-us/aspnet/core/signalr), qui expose
un [hub SignalR](https://learn.microsoft.com/en-us/aspnet/core/signalr/introduction#hubs). Ce
hub SignalR peut être utilisé par les clients de jeu pour recevoir des messages concernant les [ressources
auxquelles ils se sont abonnés](/fr/services/playfab/multiplayer/real-time-messages/subscribing-to-resources).

## Connexion au hub SignalR

La première étape pour recevoir des messages en temps réel consiste à créer un [client
SignalR](https://learn.microsoft.com/en-us/aspnet/core/signalr/client-features). Le
client peut créer une connexion au hub SignalR en [instanciant une
HubConnection](https://learn.microsoft.com/en-us/aspnet/core/signalr/dotnet-client#connect-to-a-hub)
avec l'API suivante : [API REST SignalR
Negotiate](https://learn.microsoft.com/en-us/rest/api/playfab/multiplayer/pub-sub/negotiate).
Cette API implémente l'API Negotiate décrite [dans la documentation
SignalR](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/TransportProtocols.md#post-endpoint-basenegotiate-request).

<Warning>
  L'utilisation de l'[encodage MessagePack (MsgPack)](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/HubProtocol.md#messagepack-msgpack-encoding) lors de la connexion au hub SignalR est fortement recommandée ; elle sera imposée à l'avenir comme le seul encodage pris en charge.
</Warning>

<Info>
  Le client **doit** définir `KeepAliveInterval` sur **5 secondes** lors de la création de la `HubConnection`. Le service principal fait expirer et ferme les connexions qui ne reçoivent pas de ping de maintien en vie dans un délai de **10 secondes**. La valeur `KeepAliveInterval` par défaut de SignalR, soit 15 secondes, est trop lente et provoquera des déconnexions. `csharp var connection = new HubConnectionBuilder() .WithUrl(hubUrl, options => { /* auth headers */ }) .WithKeepAliveInterval(TimeSpan.FromSeconds(5)) .Build(); ` Pour plus de détails sur la configuration du client SignalR, consultez la [documentation sur la configuration de SignalR](https://learn.microsoft.com/en-us/aspnet/core/signalr/configuration#configure-client-options).
</Info>

<Note>
  1. Les implémentations de client SignalR s'attendent à ce que l'URL omette la partie `/negotiate` de ce chemin (par exemple, la HubConnection doit être créée vers une URL se terminant par `...playfabapi.com/pubsub`). 1. Les en-têtes d'authentification requis pour appeler cette API peuvent être transmis au client SignalR via `HttpConnectionOptions`, comme [indiqué sur cette méthode](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.signalr.client.hubconnectionbuilderhttpextensions.withurl#microsoft-aspnetcore-signalr-client-hubconnectionbuilderhttpextensions-withurl\(microsoft-aspnetcore-signalr-client-ihubconnectionbuilder-system-string-system-action\(\(microsoft-aspnetcore-http-connections-client-httpconnectionoptions\)\)\)).
</Note>

## Implémentation des méthodes client pour recevoir des messages

Consultez la [documentation du client SignalR sur l'implémentation des méthodes
client](https://learn.microsoft.com/en-us/aspnet/core/signalr/dotnet-client#call-client-methods-from-hub)
qui seront appelées pour recevoir des messages. Les clients doivent implémenter toutes les
méthodes répertoriées dans la section [Méthodes client](#client-methods) ci-dessous.

## Démarrage et fin d'une session par l'appel de méthodes serveur

Consultez la [documentation du client SignalR sur l'appel des méthodes
serveur](https://learn.microsoft.com/en-us/aspnet/core/signalr/dotnet-client#call-hub-methods-from-client)
pour gérer votre session. Par exemple, une fois connecté au hub, vous devez appeler
[StartOrRecoverSession](/fr/services/playfab/multiplayer/real-time-messages/server-methods/start-or-recover-session) pour recevoir un
`connection handle` que vous pouvez utiliser pour [vous abonner à des
ressources](/fr/services/playfab/multiplayer/real-time-messages/subscribing-to-resources). De même, une fois que vous en avez terminé avec la
session, appelez [EndSession](/fr/services/playfab/multiplayer/real-time-messages/server-methods/end-session).

## Abonnement aux ressources

Une fois qu'une session a été démarrée avec
[StartOrRecoverSession](/fr/services/playfab/multiplayer/real-time-messages/server-methods/start-or-recover-session), vous pouvez utiliser
le `connection handle` renvoyé pour commencer à [vous abonner à des
ressources](/fr/services/playfab/multiplayer/real-time-messages/subscribing-to-resources) et à recevoir des messages.

## API

<a id="client-methods" />

### Méthodes client

| Nom | Description |
| - | - |
| [ReceiveMessage](/fr/services/playfab/multiplayer/real-time-messages/client-methods/receive-message) | Recevoir un message. |
| [ReceiveSubscriptionChangeMessage](/fr/services/playfab/multiplayer/real-time-messages/client-methods/receive-subscription-change-message) | Recevoir un SubscriptionChangeMessage pour suivre les abonnements actuels. |

### Méthodes serveur

| Nom | Description |
| - | - |
| [StartOrRecoverSession](/fr/services/playfab/multiplayer/real-time-messages/server-methods/start-or-recover-session) | Démarrer ou récupérer une session. |
| [EndSession](/fr/services/playfab/multiplayer/real-time-messages/server-methods/end-session) | Mettre fin à la session. |

#### Méthodes de session partagée

| Nom | Description |
| - | - |
| [AddEntityToSession](/fr/services/playfab/multiplayer/real-time-messages/server-methods/add-entity-to-session) | Pour les scénarios où plusieurs entités sont connectées sur le même appareil. Ajouter une entité supplémentaire à la session afin de recevoir des messages pour plusieurs entités locales sur une session partagée. |
| [RemoveEntityFromSession](/fr/services/playfab/multiplayer/real-time-messages/server-methods/remove-entity-from-session) | Supprimer une entité de la session. |

## Voir aussi

* [Abonnement aux ressources](/fr/services/playfab/multiplayer/real-time-messages/subscribing-to-resources)
* [Messages en temps réel pour les API Lobby et Matchmaking](/fr/services/playfab/multiplayer/real-time-messages/overview)


## Related topics

- [Méthode client SignalR ReceiveMessage](/fr/services/playfab/multiplayer/real-time-messages/client-methods/receive-message.md)
- [Type de message en temps réel Message](/fr/services/playfab/multiplayer/real-time-messages/types/message.md)
- [Méthode serveur SignalR EndSession](/fr/services/playfab/multiplayer/real-time-messages/server-methods/end-session.md)
- [Méthode client SignalR ReceiveSubscriptionChangeMessage](/fr/services/playfab/multiplayer/real-time-messages/client-methods/receive-subscription-change-message.md)
- [Méthode serveur SignalR StartOrRecoverSession](/fr/services/playfab/multiplayer/real-time-messages/server-methods/start-or-recover-session.md)
