NodeJS "Web en tiempo real"
-
Upload
sebastian-gamboa -
Category
Technology
-
view
1.963 -
download
0
description
Transcript of NodeJS "Web en tiempo real"
Web en tiempo real
EVENTED I/O
Server DB
MODELO TRADICIONAL
Server DB
MODELO TRADICIONAL
Server DB
MODELO TRADICIONAL
Server DB
MODELO C/EVENTOS
Server DB
MODELO C/EVENTOS
MainLoop
DB
MODELO C/EVENTOS
Twisted
EventMachine
Evented I/O for V8 JavaScript.
INSTALACIÓN
$ curl -O http://nodejs.org/dist/node-v0.2.5.tar.gz # http://nodejs.org/#download $ tar xvf node-v0.2.5.tar.gz $ cd node-v0.2.5 $ ./configure $ make $ sudo make install $ node --version
# => v0.2.5 $ node > // modo interactivo > [Ctrl+C]
ESTRUCTURAFramework de bajo nivel
SERVIDOR WEB
1 var http = require('http');2 3 http.createServer(function (req, res) {4 res.writeHead(200, {'Content-Type': 'text/plain'});5 res.end('Hello World\n');6 }).listen(8124, "127.0.0.1");78 console.log('Server running at http://127.0.0.1:8124/');
EXPRESS 1 var app = express.createServer();2 3 app.get('/', function(req, res){4 res.send('Hello World');5 });6 7 app.listen(3000);
Node’s Sinatra
http://expressjs.com/
SISTEMA DE PAQUETES
WEB SOCKETS
CONEXIÓN PERSISTENTE
BAJO NIVEL
https://github.com/jackyyll/nodejs-websockets
1 var sys = require('sys'), 2 WebSocket = require('../websockets'); 3 4 function TimeJS () { 5 var self = this; 6 7 this.websocket = new WebSocket.Server({resource: '/time', host: 'localhost'}); 8 this.connections = new Array(); 9 10 this.websocket.addListener('connect', function (server, connection) {11 self.connections[connection.socket.fd] = "";12 });13 this.websocket.addListener('disconnect', function (server, connection) {14 clearInterval(self.connections[connection.socket.fd]);15 self.connections.splice(self.connections.indexOf(connection.socket.fd), 1);16 });17 this.websocket.addListener('receive', function (data, connection) {18 if (data == 'start') {19 self.connections[connection.socket.fd] = setInterval(function () {20 connection.write(JSON.stringify({time: new Date().toString()}));21 }, 1000);22 }23 });24 }25 26 new TimeJS();
Faye is an easy-to-use publish-subscribe messaging system based on the Bayeux protocol.
It provides message servers for Node.js and Rack, and clients for use in Node and Ruby programs
http://faye.jcoglan.com
INICIAR UN SERVIDOR 1 var Faye = require('faye'), 2 server = new Faye.NodeAdapter({mount: '/'}); 3 4 server.listen(8000);
CREAR UN CLIENTE 5 var client = new Faye.Client('http://localhost:8000/'); 6 7 client.subscribe('/messages', function(message) { 8 alert('Got a message: ' + message.text); 9 });
ENVIAR MENSAJES
10 client.publish('/messages', {11 text: 'Hello world'12 });
MAS SIMPLEWeb Sockets as a Service
http://pusherapp.com/
(DEMO)https://github.com/sagmor/mapsketcher
Fotos: sjunnesson, atranman, denial_land, moriza, ghero79 @ Flickr