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èmedé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 directementcréer,créer, il faut le save par la suite sinon il ne sera paspersisté.persisté. Cependant, dans braincloud lorsqu'oncréecrée un object il est directementcréercréer avec les informationsspé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 decréationcréation d'indexes sert pour ajouter lesproprié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 champspécifiquespécifique du document, il faut utiliser le prefix "data." La documentation en lien avec les queries est assez simple etcompréhensible.compréhensible. - Code: Pour un
élémentélémentspé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 objetsretournésretournés pour unerequêterequêteparticulière.particulière. La documentationsuggèresuggère d'utiliser getEntityPageOffset pour obtenir le reste des objets (ex: si 150 objets sontdemandé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 jobplanifiéeplanifiée et il est possible d'exécuterexécuter lemê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 scriptsappelésappelés dans des jobs individuelles. MalgréMalgré un script de ScheduledJob qui permettrait d'ignorer lesdélaisdélais d'exécution,exécution, certainsdélaisdélaissupplémentairessupplémentaires sont ajouter enrecré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 pasaccèsaccès aux bonneméthodesméthodesàà partir de nodeJS mais, on peut run un script qui, lui, peutcréercréer un user. Sinon notre autre option serait de s'authentifier directement comme le user que nous voulontcréercréeràà partir de nodeJS
Deployment to Live
- Les Global Entities doivent
êtreêtre manuellement exporter/importer lors d'undéploiement.déploiement.ÉtantÉtantdonnédonné qu'il est possible de migrer le data des custom entities avec ledéploiement,déploiement, il serait plus avantageux de les utiliser pour le static data.