le web en temps réel - socket.io - nodejs

19
Socket.io Le web en temps réel / Thomas Ferney Clément De Figueiredo

Upload: thomas-ferney

Post on 08-Aug-2015

168 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Le web en temps réel - Socket.io - NodeJs

Socket.ioLe web en temps réel

/ Thomas Ferney Clément De Figueiredo

Page 2: Le web en temps réel - Socket.io - NodeJs

http://realtimeweb.antiseptikk.fr

Page 3: Le web en temps réel - Socket.io - NodeJs

Sommaire

Introduction au concept

Méthodes de communication en temps réel

Node.js

Socket.io

Applications

Conclusion

Page 4: Le web en temps réel - Socket.io - NodeJs

Web en temps réelCollaboratif + Multi-écrans + Nouveaux contextes

Page 5: Le web en temps réel - Socket.io - NodeJs

Méthode de communication entemps réel

Page 6: Le web en temps réel - Socket.io - NodeJs

Pooling effectué toutes les secondesRisque de surcharge en cas de forte affluence

Page 7: Le web en temps réel - Socket.io - NodeJs

Ajax Long PoolingVariation du pooling

Connexion ouverte en attente de donnéesConnexion fermée par une réponse ou par un timeout

Nombreuses connexions ouvertes en même temps

Page 8: Le web en temps réel - Socket.io - NodeJs

Ajax Multipart StreamingMéthode basée sur Gecko(Netscape Navigator, Firefox...)

Ajout du paramètre multipart = true à l'objet XMLHttpRequestUtilisation du content multipart/x-mixed-replace qui permettra de

streamer les données

Page 9: Le web en temps réel - Socket.io - NodeJs

Forever iframeCacher une iframe avec les mentions :

Transfer-encoding : chunkedConnection : keep-alive

Barre de chargement infini sur certains navigateurs

Page 10: Le web en temps réel - Socket.io - NodeJs

WebSocketsCommunication bi-directionnelle sur un socket TCP

Méthodes standards sur tous les navigateurs

Page 11: Le web en temps réel - Socket.io - NodeJs

Environnement d'exécution de programme JavaScript développé enC++

Interprétation du code à l'aide du moteur V8 de GoogleGestion d'une bibliothèque de modules avec NPM

Page 12: Le web en temps réel - Socket.io - NodeJs

Création du serveurvar http = require('http'), fs = require('fs');

http.createServer(function(req, res)

res.writeHead(200, 'Content­Type': 'text/html', 'Access­Control­Allow­Origin': '*' );

var readStream = fs.createReadStream(__dirname + '/index.html');

readStream.pipe(res);

).listen(3000);

console.log('http://localhost:3000');

Page 13: Le web en temps réel - Socket.io - NodeJs

Framework JavaScript utilisant les WebSocketsSupport étendu des navigateurs

Disponible depuis NPM

Page 14: Le web en temps réel - Socket.io - NodeJs

Exemple d'implémentation serveurvar app = require('http').createServer(handler);var io = require('socket.io')(app);var fs = require('fs');

app.listen(80);

function handler (req, res) fs.readFile(__dirname + '/index.html', function (err, data) res.writeHead(200); res.end(data); );

io.on('connection', function(socket) socket.emit('news', hello: 'world' ););

Page 15: Le web en temps réel - Socket.io - NodeJs

Exemple d'implémentation client<script src="/socket.io/socket.io.js"></script><script>

</script>

var socket = io('http://localhost');

socket.on('news', function (data) console.log(data); );

Page 16: Le web en temps réel - Socket.io - NodeJs

Application de monitoringDaemon en CBDD MySQL

Dashboard HTML / JavaScript sur un serveur Node.js

Page 17: Le web en temps réel - Socket.io - NodeJs

Application de listes de coursescollaboratives

BDD MongoDBWeb app AngularJS sur Node.js

Page 18: Le web en temps réel - Socket.io - NodeJs

Conclusion

Node.jsFacilePuissant

Socket.ioAbstractionAPI bien fournie

Temps réel en quelques lignes

Page 19: Le web en temps réel - Socket.io - NodeJs

Merci à tous !Contact : / @MrAntiseptikk @CaptainKali