Skip to main content

BrainCloud

Scripts


  • On organise le nom des scripts de la manièremanière suivantes : {folderName}_{subFolderName}_{ScriptName}
  • Dans le cas des scripts appelable par le client on ajoute "Cmd" comme prefix du "ScriptName"
  • Exemples:  
    • acc1_CmdCreateTeam (pour les commandes de create team)
    • ent1_Utils (pour les scripts utilaire spécifiquespécifique àà un jeu)
    • acc1_Bills
    • CmdSaveSegment (Pour une commande générique) générique) 

  

Message/Events


  • Code clients : Assez simple, On ajoute les binding pour get les events dans le backendBrainCloud qui ajouterai une entréeentrée dans le messageDispatcher.
  • Code Serveur : Il faudrait faire un systeme plus centralisécentralisé sur le serveur afin de ne pas avoir plusieurs moyen de send des events
  • Les events semblent mieux que les messages pour gerer notre systeme de live update

  

Documents Save/Load Load 


  • On peut modifier le systèmesystème déjàdéjà mis en place, documents_utils, et cela devrait êtreêtre fonctionnel pour tout le monde.
  • Create : Dans gamesparks lorsqu'on créecrée un object, il n'est pas directement créer,créer, il faut le save par la suite sinon il ne sera pas persisté.persisté. Cependant, dans braincloud lorsqu'on créecrée un object il est directement créercréer avec les informations spécifiuer.spécifiuer.

  

Document Queries


  • Possible d'ajouter des single et des compound indexes en json (MongoDB). Il n'y a pas beaucoup de documentation sur BrainCloud sur les indexes, mais il y en a dans celle de MongoDB.
  • La boîteboîte Options dans le popup de créationcréation d'indexes sert pour ajouter les propriétéspropriétés aux indexes (comme sparse, TTL, case insensitive).
  • Portal: Plus de capacitéscapacités de recherche que GameSparks, mais sans l'interface user-friendly. Les Where Queries sont faites avec du json. Pour faire une query avec un champ spécifiquespécifique du document, il faut utiliser le prefix "data." La documentation en lien avec les queries est assez simple et compréhensible.compréhensible.
  • Code: Pour un élémentélément spécifique,spécifique, il est possible d'utiliser getRandomEntitiesMatching. Pour plusieurs élémentséléments (comme pour obtenir toutes les simulations d'un prof), il serait plus favorable d'utiliser getEntityPage.
  • Semble avoir la mêmemême limite de 100 objets retournésretournés pour une requêterequête particulière.particulière. La documentation suggèresuggère d'utiliser getEntityPageOffset pour obtenir le reste des objets (ex: si 150 objets sont demandés)demandés). ***ÀÀ tester***

  

Scheduled Scripts


  • En utilisant la Job Queue dans l'onglet Monitoring, puis Global Monitoring, il est trèstrès facile d'exécuterexécuter une job planifiéeplanifiée et il est possible d'exécuterexécuter le mêmemême script àà nouveau en appelant scheduleRunScriptMillisUTC (ne fonctionne pas pour l'instant) scheduleRunScriptUTC (depricated depuis la version 4.6) du script service.
  • En se construisant un script Template pour les Scheduled Jobs, il sera possible compartimentécompartimenté les scripts appelésappelés dans des jobs individuelles.
  • MalgréMalgré un script de ScheduledJob qui permettrait d'ignorer les délaisdélais d'exécution,exécution, certains délaisdélais supplémentairessupplémentaires sont ajouter en recréantrecréant une nouvelle job.
  • param pour schedule la job: /_job/_scheduled_job
    { "timerDelay": 1, "scriptName": "/_job/generate_results_job", "scriptData": {}, }

  

REST API / nodeJS Client


  • We can use https://www.npmjs.com/package/braincloud?activeTab=readme in combination with the S2S request to call differents scripts
  • The nodejs is relatively simple, the hard thing is to find the right objectName or methodName but they can be found here http://getbraincloud.com/apidocs/apiref/?java#capi 
     
    ex.:
    var scriptData = {

    "profil1": "ec11299f-ce5c-4485-9725-072205223783"

    };

    brainCloud.script.runScript("SendMessage", scriptData, OnSendMessageResponse);

  • Pour la créationcréation d'utlisateur on n'a pas accèsaccès aux bonne méthodesméthodes àà partir de nodeJS mais, on peut run un script qui, lui, peut créercréer un user. Sinon notre autre option serait de s'authentifier directement comme le user que nous voulont créercréer àà partir de nodeJS

  

Deployment to Live


  • Les Global Entities doivent êtreêtre manuellement exporter/importer lors d'un déploiement.déploiement. ÉtantÉtant donnédonné qu'il est possible de migrer le data des custom entities avec le déploiement,déploiement, il serait plus avantageux de les utiliser pour le static data.