RTT, messages et synchronisation
Chaîne de synchronisation
BrainCloud RTT permet au serveur d'avertir les clients déjà connectés lorsqu'un document ou un état métier change. Côté serveur, la couche commune est _utils/utils_message.js. Côté Unity, BackEndBrainCloud reçoit les messages et les distribue au runtime.
sequenceDiagram
participant S as Cloud Script
participant M as utils_message
participant RTT as BrainCloud RTT
participant B as BackEndBrainCloud
participant D as MessagesDispatcher
participant C as Controller
S->>M: sendMessageToTeam / User / Sim
M->>RTT: message type + data
RTT-->>B: OnRTTMessageReceived
B->>D: ServerMessage
D-->>C: listener
C->>C: refresh du modèle / UI
Helpers serveur
utils_message.js expose notamment sendMessageToTeam, sendMessageToMemberList, sendMessageToSim, sendMessageToActStudents, sendMessageToUser, sendMessageToTeamAndTeacher et des messages spécialisés comme sendLedgerPageChangedMessage.
Connexion RTT
Après AuthenticateUniversal, BackEndBrainCloud.EnableRTT() appelle BrainCloud.RTTService.EnableRTT. Sur succès, le client enregistre RegisterRTTMessagingCallback(OnRTTMessageReceived). Si la socket est fermée, le code tente de réactiver RTT; si l'authentification n'est plus valide, il réutilise la fonction d'authentification.
Règle pour une nouvelle feature
Une écriture serveur réussie ne suffit pas si plusieurs utilisateurs voient le même état. Après la sauvegarde, déterminer qui doit être averti : utilisateur, équipe, équipe + professeur, activité ou simulation. Le listener Unity doit ensuite mettre à jour le modèle local avant l'UI.
Diagnostic
- Vérifier que le Cloud Script envoie bien un message.
- Vérifier le type et la payload.
- Vérifier que RTT est connecté.
- Trouver le
MessageTypecôté Unity. - Trouver le listener dans le controller.
- Vérifier si le listener applique la donnée reçue ou redemande un document.