ICT role in 21st century education and its challenges
Building realtime web apps using node.js, socket.io and knockout.js
1. Building real-time apps
with node.js, socket.io
and knockout.js
Iván Loire
twitter: @ivanloire
email: ivan@iloire.com
Friday, March 9, 2012
2. node.js
high performance javascript library for intensive I/O
operations. (like HTTP)
single threaded, event oriented.
built on Chrome’s Javascript runtime (V8)
lightweight, efficient, really fast.
.. insanely fast.
Friday, March 9, 2012
3. websockets
bi-directional, full duplex over a single tcp socket.
connection remains open = no tcp handshake
lightweight protocol = no http headers, 2 byte
overhead
supported chrome 16, FF 11, IE 10, Opera 10
reducing latency from 150 (http) to 50 ms (sockets)
Friday, March 9, 2012
4. socket.io
websockets for the rest of us.
fallback transports (yes, it also works in IE!!)
websockets
flash sockets
ajax long polling
ajax streaming
iframe
json polling..
Friday, March 9, 2012
5. knockout.js
rich, responsive display with a clean underlying data
model.
declarative bindinds
automatic UI refresh
dependency tracking
templating
Friday, March 9, 2012
6. ... and a fast database!
open source, high performance, in-memory, key-value
data store
support master-slave replication
really fast!
if durability is not needed... insanely fast!
Friday, March 9, 2012
7. real-time apps web
node.js + redis + socket.io + knockout.js
real-time... or close enough?
Friday, March 9, 2012
8. now let’s build a really simple real-time
game...
https://github.com/iloire/math-race
thanks to @gimenete for getting me into node.js!
... and thanks to @jmendiara for the node.js sticker!
Friday, March 9, 2012