Skip to main content

Panel Web — notifications et intégration avec le Game

Rôle et comportement actuel

Le flux de communication actuel du Game envoie uniquement des notifications. L'ancien parcours de chat ne doit plus être présenté comme le fonctionnement courant. Cette page regroupe l'intégration avec le backend du panel Web, la persistance des notifications et leur réception côté client.

Le logbook est un système métier distinct, avec son propre document, son historique et son évaluation. Voir Logbook — sauvegarde, historique et évaluation dans Commun.

Deux canaux complémentaires

Canal Responsabilité Points d'entrée
Backend Web Enregistrer et charger les notifications. /saveNotification et /getNotifications/<teacherUid>
BrainCloud RTT Avertir le client connecté de l'arrivée d'une notification. new_notification

La réception temps réel complète le chargement des données persistées. Un client qui se connecte après l'envoi doit pouvoir retrouver ses notifications sans avoir reçu le message RTT.

Envoi depuis Unity

  1. Le code métier appelle Game.NotificationManager.SaveNotification().
  2. NotificationManager.SaveNotification() passe par BackEndBase.SaveNotification().
  3. L'appel utilise l'endpoint Web /saveNotification.
  4. Une nouvelle notification peut être signalée au client via new_notification.

Le chemin Web doit être vérifié séparément du chemin Cloud Script. Pour les opérations BrainCloud communes, voir Backend Unity ↔ BrainCloud; pour les listeners, voir RTT, messages et synchronisation.

Chargement et affichage

Le chargement des notifications du professeur passe par /getNotifications/<teacherUid>. Vérifier l'identifiant du destinataire lorsque la liste est vide ou contient des notifications inattendues.

Les données et le rendu côté Unity passent par NotificationData et NotificationListItem. Le notificationType identifie le type de notification; extraData transporte les informations nécessaires à son affichage ou à son comportement.

Ajouter un type de notification

  1. Choisir un notificationType stable et explicite.
  2. Définir les champs de extraData dont le client a besoin.
  3. Déclencher l'envoi via Game.NotificationManager.SaveNotification().
  4. Adapter NotificationData et NotificationListItem si le type nécessite un rendu ou une action spécifique.
  5. Ajouter les textes localisés.
  6. Vérifier le chargement initial, la réception RTT, le marquage comme lu et la suppression.

Vérification et diagnostic

  • Notification non enregistrée : vérifier l'appel Web à /saveNotification et sa réponse.
  • Liste vide après connexion : vérifier /getNotifications/<teacherUid>, le destinataire et la donnée persistée.
  • Donnée présente mais pas de mise à jour live : vérifier new_notification, le listener RTT et le rafraîchissement de l'UI.
  • Affichage incorrect : vérifier le type, extraData, le rendu et les textes localisés.

Tester avec un destinataire connecté puis déconnecté, relancer le client et vérifier l'absence de doublons. Une notification persistée doit rester accessible après reconnexion.