20130228 wwruhr 4_realtime_webmitnodejs

21
Realtime Web mit Node.js #WWRuhr by @DerMambo visit: www.techpott.de Freitag, 8. März 13

description

Realtime Web mit Node.js. Präsentation beim Web Worker Ruhr Treffen #5. Es wird gezeigt, wie einfach es ist mit node.js und socket.io eine Realtime Web-Anwendung zu entwickeln. Erstellt von @DerMambo (http://www.manuel-schoebel.com)

Transcript of 20130228 wwruhr 4_realtime_webmitnodejs

Page 1: 20130228 wwruhr 4_realtime_webmitnodejs

Realtime Webmit Node.js

#WWRuhrby @DerMambo

visit: www.techpott.de

Freitag, 8. März 13

Page 2: 20130228 wwruhr 4_realtime_webmitnodejs

Node.js„Node.js is a set of libraries for JavaScript that allows it to run outside the browser. It is primarily focused on

creating simple, easy to build network clients and servers.“

„Javascript auf dem Server“

oder ...

„so ein Unsinn“

oder ...

Freitag, 8. März 13

Page 3: 20130228 wwruhr 4_realtime_webmitnodejs

2. meist betrachtete Repository auf Git Hub

Freitag, 8. März 13

Page 4: 20130228 wwruhr 4_realtime_webmitnodejs

Only a toy?• LinkedIn für Mobile Web App

• Voxxer für Push to Talk mobile App

• Microsoft als Core Contributor - bietet auch Cloud-Hosting auf Windows Azure

• Trello für Web App

• Walmart für Mobile Site

• uvm ... (https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node)

NO !Freitag, 8. März 13

Page 5: 20130228 wwruhr 4_realtime_webmitnodejs

Ein einfacher Server mit Node.js

Freitag, 8. März 13

Page 6: 20130228 wwruhr 4_realtime_webmitnodejs

Freitag, 8. März 13

Page 7: 20130228 wwruhr 4_realtime_webmitnodejs

Non Blocking I/ODer Event-Loop

Freitag, 8. März 13

Page 8: 20130228 wwruhr 4_realtime_webmitnodejs

Client A will viele Daten

Hole Daten

CB

Single Node Prozess

Client B möchte 2 + 2 berechnen

2+2 =4do nothing do nothing CB

Client A

Freitag, 8. März 13

Page 9: 20130228 wwruhr 4_realtime_webmitnodejs

Node.js Vorteile

• Node.js bedient hunderte gleichzeitige Verbindungen schnell und zuverlässig

• Sehr gut skallierbar

• Nur eine Sprache auf Client und Server

Freitag, 8. März 13

Page 10: 20130228 wwruhr 4_realtime_webmitnodejs

Freitag, 8. März 13

Page 11: 20130228 wwruhr 4_realtime_webmitnodejs

Realtime mit Socket.io

Freitag, 8. März 13

Page 12: 20130228 wwruhr 4_realtime_webmitnodejs

Modules für jeden BedarfFreitag, 8. März 13

Page 13: 20130228 wwruhr 4_realtime_webmitnodejs

Was wir benutzen

• Express als meist genutztes Framework

• Vereinfacht nur die wesentlichen Dinge

• Request routing, content negotiation, view templating und partials, session support, static file serving

• Socket.io für Websockets mit diversen Fallbacks

Freitag, 8. März 13

Page 14: 20130228 wwruhr 4_realtime_webmitnodejs

Socket.io

• Unified API for Web Sockets

• Creates fallbacks

Freitag, 8. März 13

Page 15: 20130228 wwruhr 4_realtime_webmitnodejs

Jetzt aber Realtime mit Socket.io

[https://github.com/DerMambo/wwruhr-clicker]

Freitag, 8. März 13

Page 16: 20130228 wwruhr 4_realtime_webmitnodejs

Die Zukunft der Webentwicklung?

• Full-Stack Javascript Frameworks

• Meteor.js

• Derby.js

• Mojito.js von Yahoo

• Sails.js ... und bald sicher noch mehr

Freitag, 8. März 13

Page 17: 20130228 wwruhr 4_realtime_webmitnodejs

Danke!@DerMambo für mehr Realtime

Freitag, 8. März 13

Page 18: 20130228 wwruhr 4_realtime_webmitnodejs

SONSTIGES

Freitag, 8. März 13

Page 19: 20130228 wwruhr 4_realtime_webmitnodejs

Die Zukunft der Web-Entwicklung?

•Meteor.js

•Derby.js

•Mojito.js von Yahoo

•Sails.js und es werden noch einige folgen

Freitag, 8. März 13

Page 20: 20130228 wwruhr 4_realtime_webmitnodejs

• Ryan Dahl started node project 16. Feb 2009

• Isaac Schlueter starts npm package manager

Freitag, 8. März 13

Page 21: 20130228 wwruhr 4_realtime_webmitnodejs

• Callback - Hell - Vermeidung

• Asynch

• Smaller functions

• allways (err, result){ ... }

Freitag, 8. März 13