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

Post on 08-Aug-2015

168 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Socket.ioLe web en temps réel

/ Thomas Ferney Clément De Figueiredo

http://realtimeweb.antiseptikk.fr

Sommaire

Introduction au concept

Méthodes de communication en temps réel

Node.js

Socket.io

Applications

Conclusion

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

Méthode de communication entemps réel

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

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

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

Forever iframeCacher une iframe avec les mentions :

Transfer-encoding : chunkedConnection : keep-alive

Barre de chargement infini sur certains navigateurs

WebSocketsCommunication bi-directionnelle sur un socket TCP

Méthodes standards sur tous les navigateurs

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

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');

Framework JavaScript utilisant les WebSocketsSupport étendu des navigateurs

Disponible depuis NPM

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' ););

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); );

Application de monitoringDaemon en CBDD MySQL

Dashboard HTML / JavaScript sur un serveur Node.js

Application de listes de coursescollaboratives

BDD MongoDBWeb app AngularJS sur Node.js

Conclusion

Node.jsFacilePuissant

Socket.ioAbstractionAPI bien fournie

Temps réel en quelques lignes

Merci à tous !Contact : / @MrAntiseptikk @CaptainKali

top related