Node JS, javascript & réseau

nodejsNode.js est un framework libre orienté réseau, très populaire actuellement, notamment pour le multijoueur. Effectivement, node.js permet d’exécuter du javascript, habituellement coté client, maintenant coté serveur et ce de façon très performante.

Son fonctionnement est basé sur l’évènementiel et l’utilisation du moteur V8 de la VM (machine virtuelle) Google Chrome qui optimise et compile JIT (Just In Time) ce code javascript en code machine, ce qui permet des performance accrues.

google_v8

 

Les évènements sont très utiles en programmation, puisqu’ils permettent donc de réaliser les programmes « non-bloquants ». C’est à dire que les tâches ne vont pas s’exécuter les unes après les autres mais simultanément 🙂

Par exemple, nous souhaitons récupérer des utilisateurs et des images pour une galerie (non liées aux utilisateurs). Dans ce cas, la récupération va se lancer, sans attendre que le résultat de cette demande soit renvoyer, la récupération des images de la galerie va se lancer à son tour. Une fois ces tâches terminées, une « CallBack », une fonction de rappel, spécifique à la demande sera notifiée !

//déclaration de la fonction de retour des utilisateurs
var callbackUser = function (error, response, body) {
    console.log("Utilisateurs reçus !");
});

//déclaration de la fonction de retour des images
var callbackImage = function (error, response, body) {
    console.log("Images reçues !");
});

//requête de demande des utilisateurs 
//et inscription de la fonction une fois la tâche terminée
request('http://www.site.com/GetUsers', callbackUser);
//requête de demande des utilisateurs 
//et inscription de la fonction une fois la tâche terminée
request('http://www.site.com/GetImages', callbackImages);

Les requêtes au serveur sont donc ainsi optimisées !