-
Notifications
You must be signed in to change notification settings - Fork 4
GForce C'est plus fort que toi
La -GMCC fut créé le mercredi 9 avril 2014, par Federico Giacomini et Timoté Guyot, dans le but de faciliter le développement de jeu multijoueur dans le cadre d'utilisation du learning-engine. Ainsi grâce aux différents évènements disponibles, il est possible pour chacun de stocker des informations sur le serveur sans jamais avoir besoin d'y ajouter du code spécifique à votre module.
- Possibilité de créer un espace de stockage dédié à chaque client, côté serveur.
- Possibilité de charger l'intégralité des données utilisateurs, côté client.
- Possibilité de modifier n'importe quel valeur contenu côté serveur tout en le faisant savoir aux autres utilisateurs, de plus il est possible de customiser le nom de l'évènement réceptionné côté client une fois la modification terminée.
"create player -g" attends un objet côté serveur, le serveur stockera chaque propriété de l'objet à l'id spécifié, si celui-ci est omit, il attribuera automatiquement l'id de la socket. Une fois les modifications serveur terminées, il émettra un évènement "new player" faisant transiter l'objet jusqu'aux autres clients.
Émission depuis le client:
moduleSocket.emit("create player -g",{ id:moduleSocket.socket.sessionid, Attribut1:value1, Attribut2:value2});
Réception des autres clients:
moduleSocket.on("new player",function(data){//Votre code});
"load players -g" émet un évènement "load player" permettant de récupérer la liste des utilisateurs connectés ainsi que leur espace de stockage.
Émission depuis le client:
moduleSocket.emit("load players -g");
Réception depuis le client:
moduleSocket.on("load players",function(users){//Votre code});
Idéalement, à la réception, users devrait être un tableau associatif suivant cette structure:
{idPlayer1:{clé1:value1,clé2:value2},idPlayer2:{clé1:value1,clé2:value2}}
"infoToSync -g" permet de modifier et stocker les valeurs envoyées au serveur sans polluer le namespace global. Le serveur stockera toute les propriétés contenus dans "info" dans le tableau associatif "users", à la clé "id".
ndlr users[key] est ce que l'on appel l'espace de stockage privé.
Émission depuis le client:
moduleSocket.emit("infoToSync -g",{id:idPlayer,eventName:NomDeReceptionPourEventCustom,info{cle1:value1,cle2:value2}});
Réception des autres clients: Celle-ci peut se faire par deux évènements possible, "Synchronization", ou la string contenue dans eventName.
Synchronization (default)
moduleSocket.on("Synchronization",function(data){//ICI VOTRE CODE});
NomDeReceptionPourEventCustom (custom)
moduleSocket.on("NomDeReceptionPourEventCustom",function(data){//ICI VOTRE CODE});
"disconnect" Est émis automatiquement lorsque la websocket se ferme. Une fois son traitement par le serveur achevé, émet l'évènement "player disconnected" contenant l'id de la websocket déconnectée.
Réception côté client:
moduleSocket.on("player disconnected",function(user){//ICI VOTRE CODE});
Ne pas modifier le code source sans avis des auteurs, sauf autorité supérieure (le cas échéant merci de prévenir les auteurs).