From Ape Wiki

Jump to: navigation, search

Contents

[edit] Événements APE JSF

Dans APE JSF il y a trois différentes sortes d'événements :

[edit] Événements Interne

Les événements interne sont déclenchés par le noyau APE et sont utilisés dans des cas particuliers. Exemples:

  • Quand le noyau APE Core est chargé
  • Quand le noyau APE est déconnecté (ou reconnecté) depuis un serveur APE
  • Quand un nouveau pipe est créé
  • ...

Les événements internes peuvent être capturés avec addEvent  :

var client = new APE.Client();
client.load();
 
// Intercepte l'événement 'load'. Cet événement est déclenché lorsque le noyau est chargé et prêt à se connecter au serveur APE.
client.addEvent('load', function() {
    // Appelle la fonction de démarrage du noyau pour se connecter au serveur APE
    client.core.start({"name":"Pooridge"});
});
 
//Écoute l'événement ready (prêt)  pour savoir quand le client est connecté
client.addEvent('ready', function() {
    console.log('Votre client est maintenant connecté');
});

Pour un liste de tous les événements internes, consultez la documentation d'événements

[edit] Les événements Raw

Chaque fois qu'APE JSF reçoit un raw depuis le serveur APE, un événement avec le nom du raw est déclenché. Les événement Raw peuvent être capturés avec onRaw. Les données reçues depuis le serveur APE sont passées dans un objet dans le premier argument de la fonction traitant l'événement.

An illustration of the layout of the object given as the first argument to the callback. (From the Hello World tutorial )
An illustration of the layout of the object given as the first argument to the callback. (From the Hello World tutorial )


//Connexion au serveur APE
var client = new APE.Client();
client.load();
client.addEvent('load', function() {
    client.core.start({"name":"Pooridge"});
});
 
//Interception de l'événement raw login
client.onRaw('login', function(data) {
    //enregistrement dans la console des données reçues depuis le serveur APE
    console.log(data);
});

This forum nedeed shaking up and you’ve just done that. Great post!

[edit] Les événement Pipe

Les pipes on leur propre pile d'événements. C'est très utile si vous voulez écoutez des événement sur un pipe donné.

//Connexion au serveur APE
var client = new APE.Client();
client.load();
client.addEvent('load', function() {
    client.core.start({"name":"Pooridge"});
});
client.onCmd('ready', function(data) {
    //Rejoindre deux canaux
    client.core.join(['testCanal', 'testCanal2']);
});
 
//L'événement multiPipeCreate est déclenché quand vous rejoignez un canal
client.addEvent('multiPipeCreate', function(pipe, options) {
    //On teste si le pipe est testChannel
    if (pipe.name == 'testChannel') {
        //On attache l'événement userJoin uniquement au pipe testCanal
        pipe.addEvent('userJoin', function(user, pipe) {
            console.log('Nouvel utilisateur sur le pipe testCanal');
        });
       //On déclenche l'événement 'samplePipeEvent' seulement sur ce pipe
       pipe.fireEvent('samplePipeEvent');
       //On déclenche l'événement 'globalEvent' à la fois sur ce pipe et sur le noyau
       pipe.fireGlobalEvent('sampleGlobalEvent');
    }
});

[edit] Comment APE JSF détecte-t-il le pipe où il doit déclencher l'événement?

Quand le noyau APE reçoit des raws depuis le serveur APE, il vérifie la présence d'un identifiant pubid. Si la valeur de cet identifiant correspond à un pubid de pipe connu sur le noyau, l'événement est déclenché d'abord sur le noyau, puis sur le pipe correspondant. Cela fonctionne de la même façon pour les commandes.

[edit] Être informé de tous les raws et commandes

Depuis la version 1.0 et au-delà, un événement interne se déclenchera à chaque déclenchement d'événement de type raw ou cmd; 'onRaw' et 'onCmd' respectivement. Pensez-y comme onRaw('*', callback) et onCmd('*', callback), bien qu'ils soient écrit comme n'importe quel autre événement interne: addEvent('onRaw', callback)

//Reagir à tous les événement de type raw et cmd
client.addEvent('onRaw', function(e) { console.log("Raw reçu") });
client.addEvent('onCmd', function(e) { console.log("Command envoyé") });

singapore party hosts - thiet ke web