Iut de Sénart Fontainebleau

Programmation web licence professionnelle bdise

Installation de NodeJS et test (pour linux)

La première chose à faire est d'installer nodeJS sur votre compte.

PATH=$PATH:/vers/le/repertoire/bin

Tout devrait fonctionner. Tester avec le fichier hello.js suivant

var http = require('http');                           
http.createServer(function (req, res) {               
	res.writeHead(200, {'Content-Type': 'text/plain'});
	res.end('Hello World\n');                         
}).listen(8080, '127.0.0.1');                         
console.log('Server running at http://127.0.0.1:8080/');
en lançant la commande
node hello.js

Installation de paquets

Le gestionnaire de paquet permet notamment d'installer, dans le repertoire d'un projet, des paquets additionnels de manière très simple.

Dans la suite, nous utiliserons 2 paquets :

npm install express
npm install socket.io

Un Chat comme exemple

Vous allez ecrire le client (html5) et le serveur nodejs qui implante un chat web. Lorsque l'on arrive sur la page du chat, on doit se connecter en donnant un pseudo.

Après connexion, la fenêtre affiche la liste des utilisateurs connectés, et une liste des messages. Bien sur, ces deux listes doivent mises à jour en temps réel.

Comment on fait ?

Le serveur

Vous pouvez partir de cette base, en la complétant.

var app = require('express')();                                                                    
var http = require('http').Server(app);
var io = require('socket.io')(http);
var users=[];      
app.get('/', function(req, res){
    res.sendfile("./chat.html");
});                
 
io.on('connection', function(socket){
    console.log('a user connected');
	/* on peut utiliser la 
	 * socket pour envoyer/recevoir des
	 * messages */
	socket.emit(....);
	socket.on(....);
 
 
});
 
http.listen(3000, function(){
	console.log('listening on *:3000');
});
Le client

La librairie socketIO met à votre disposition un fichier js ici qui permet, coté client de se connecter par le protocole WebSocket à un serveur de la manière suivante :

  socket = io.connect('http://localhost');       
  socket.emit(......) /* envoie un message */
  socket.on(.....)    /* reçoit un message */

L'api est événementielle et asynchrone !

Tout le reste est affaire de jquery, de js et de css. Vous devez savoir faire !

retour à la page d'accueil

retour au sommet