Upload
netthoder
View
1.809
Download
0
Embed Size (px)
Citation preview
Websockets
• F5 -> Ajax -> Websockets
• Websockets: Holder forbindelsen åpen
• Ajax: Ringer opp på nytt
• Kan gi oppdateringer i sanntid
• Holde samtalen / ringe opp på nytt– En annen måte å se på det:
• Å konstant holde F5-knappen nede
Eksempler
• Eksempel på websocket-tjenester:– Facebook, Twitter– Forex Trading: http://demo.kaazing.com/forex/– Spaceships:
https://developer.mozilla.org/media/uploads/demos/o/n/ondras/f1aaecf925922510753de0634542f815/just-spaceships_1336138488_demo_package/index.html
– Browserquest: http://browserquest.mozilla.org/
Andre applikasjoner som kan dra nytte av websockets
• Applikasjoner som trenger oppdateringer i sanntid
• Responsivt debattforum
• Google Docs-lignende applikasjoner– For eks for felles forside-redigering
• Live børs-oversikt
• Twitter-lignende applikasjoner
• Interaktive multiplayer-spill for web
Utvikler-verktøyene
• Node.js– Webserver/nettverksapplikasjon– Brukes av blant annet Yahoo, Ebay, Linkedin, Microsoft Azure,
Cloud9, Klout, Mockingbird
• Socket.io– Populær node-modul for å jobbe med websocket-tilkoblinger
• Redis – Gir skaleringsmuligheter– Brukes av blant annet Twitter, Digg, Disqus, Guardian,
Stackoverflow, Flickr, Yahoo, Craigslist
Hvordan bruker man verktøyene?
• Første forsøk– Oppretter en node-applikasjon (webserver)
som gjør alle oppgavene• Håndterer alle forespørsler• Håndterer alle websocket-tilkoblinger• Gjør alle lagringer/hentinger fra database
Bryter opp i flere node-apper
• En node-app tar seg av websocket-tilkoblinger vha Socket.io
• En node-app tar seg av frontend forespørsler – Bilder, html, javascript, css, osv, osv
Server 1
node frontend.js
node sockets.js
Problemet: Får fortsatt bare 10000 tilkoblinger
på EN socket-server app
Server 1
node frontend.js
node sockets.js
node sockets.js
node sockets.js
node sockets.js
Socket-server 1
Socket-server 2
Server 1
node frontend.js
node sockets.js
node sockets.js
node sockets.js
node sockets.js
Socket-server 1
Socket-server 2
Problemet:Brukere som er tilkoblet til server 1 får ikke meldingene fra server 2,3 eller 4
Server 1
node frontend.js
node sockets.js
node sockets.js
node sockets.js
node sockets.js
Socket-server 1
Socket-server 2
Problemet:Hvordan får brukere koblet til Socket-server 1 meldinger fra Socket-server 2 ?
Redis
Server 1
node frontend.js
node sockets.js
node sockets.js
node sockets.js
node sockets.js
node redis.js
Server 1
node frontend.js
node sockets.js
node sockets.js
node sockets.js
node sockets.js
node redis.js
Ca 40 000 websocket-tilkoblinger
redis
sockets
socketssockets
redis
socketsredis
sockets
socketssockets
sockets
redis
sockets
socketssockets
sockets
Ca 1 000 000 websocket-tilkoblinger
Hovedpoenget
• Websockets gir enorme muligheter for hva man kan lage
• Node.js gjør det enkelt for utviklere å bygge websocket-tjenester som skalerer