3. 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
4. Eksempler
• Eksempel på websocket-tjenester:
– Facebook, Twitter
– Forex Trading: http://demo.kaazing.com/forex/
– Spaceships:
https://developer.mozilla.org/media/uploads/demos/o/n/ond
– Browserquest: http://browserquest.mozilla.org/
5. 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
6. 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
7. 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
9. 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
14. Server 1
Socket-server 1
node frontend.js
Socket-server 2
node sockets.js
node sockets.js
Problemet:
node sockets.js
Brukere som er tilkoblet til server 1
får ikke meldingene fra server 2,3
node sockets.js eller 4
15. Server 1
Socket-server 1
node frontend.js
Socket-server 2
node sockets.js
node sockets.js
node sockets.js Problemet:
Hvordan får brukere koblet til
Socket-server 1 meldinger fra
node sockets.js Socket-server 2 ?
Redis
21. Hovedpoenget
• Websockets gir enorme muligheter for hva
man kan lage
• Node.js gjør det enkelt for utviklere å
bygge websocket-tjenester som skalerer