Future of Insight dag 1: Workshop om realtids events med WebSockets

Jeg opholder mig i denne uge i Las Vegas til Future of Insight Live konferencen. Mandag var workshop dag, med emner som f.eks. “HTML5 & CSS3 masterclass” og Node.js.

Jeg havde valgt at følge ”Adding real-time event handling to any website or app” af Jason Lengstrof fra Copter Labs. Selve workshoppen var ikke planlagt alt for godt, men det var alligevel meget lærerigt. Egentligt skulle workshoppen have handlet om real time events og det at distribuere beskeder fra server/klienter til mange klienter og apps i realtid.I stedet endte det med at en stor del af dagen kom til at gå med OAuth for at få adgang til Instagram og Twitters APIer.

Opgaven var i første omgang at hente billeder fra Instagram og få løsningen til at kører på AppFogs hostede løsning (det var nødvendigt at bruge en offentlig tilgængelig løsning for at Instagram kunne kommunikere tilbage til løsningen).
AppFog er en service til at få noget i luften uden at bruge for lang tid på server konfiguration osv., og virkede som et nemt alternativ til lignende løsninger jeg tidligere har brugt.

filive-websocket-workshop.jpegHerefter blev det straks lidt mere komplekst, Instagtam skulle sættes op til at notificere mit site og der skulle via Pusher sendes en WebSocket besked til alle besøgende der var på siden.
Pusher har et veludbygget API og giver mulighed for at opsætte forskellige rettigheder til klient og server. Der er fallback til Flash hvis klienten ikke understøtter WebSockets og det er muligt at have offentlige og private kanaler man pusher beskeder til.
Når man sender en besked via Pusher, så bliver den distribueret ud til alle enheder der har subscribet til det. Man beder om notifikationer for hver kanal en løsning har.
Det smarte ved dette setup er at hver klient ikke skal stå og polle serveren med ajax forsørgelser hele tiden, blot for at tjekke om der er nyt indhold der kan hentes ind.
I stedet kontakter Instagram min server, og fra min server sendes der via Pusher en besked til alle de besøgende på siden. Herefter kan klienten nøjes med at hente indhold med Ajax forespørgselen, og evt først gøre det når brugeren beder om det ved at klikke på en knap.

Ret hurtigt kom vi ind på hvordan man kunne lave en chat løsning, hvor man ikke står og puller serveren for opdateringer konstant. Jason har skrevet en bog om WebSockets hvor han netop bruger chat som et eksempel.
Da dette eksempel blev hevet frem, så tog workshoppen en sjov drejning. En af deltagerne var hurtig til at finde eksemplet på GitHub og finde den rigtige kanal og app id fra Pusher. Herefter sendte han en smule JavaScript der skiftede baggrunden ud med tilfældige kattebilleder. Nu kom der nogle ret spændende diskussioner frem omkring sikkerhed og hvad man skal og ikke skal på dette område.
Alt i alt en spændende dag, men selve workshoppen kunne godt være bedre planlagt for at holde fokus på emnet med realtids beskeder.

Kategorier: AJAX, Frontend

Tagged as: ,

Skriv et svar

Udfyld dine oplysninger nedenfor eller klik på et ikon for at logge ind:

WordPress.com Logo

Du kommenterer med din WordPress.com konto. Log Out / Skift )

Twitter picture

Du kommenterer med din Twitter konto. Log Out / Skift )

Facebook photo

Du kommenterer med din Facebook konto. Log Out / Skift )

Google+ photo

Du kommenterer med din Google+ konto. Log Out / Skift )

Connecting to %s