SVT Play Beta Kontroll – bakom kulisserna

I tisdags släppte vi en betaversion av nya SVT Play. En av nyheterna är att det går att använda sin mobil eller surfplatta som fjärrkontroll via en ny funktion vi valt att kalla Kontroll. För er som inte redan har testat så är det bara att surfa in på http://beta.svtplay.se/kontroll. Vi har fått många positiva reaktioner  och vissa beskriver det till och med som magi. Därför tänkte vi ta tillfället i akt och förklara hur det fungerar bakom kulisserna.

Det första som händer är att vi generar en QR-kod som pekar på en URL innehållandes en unik nyckel. När man sen skannar QR-koden med sin mobil skickas man vidare till denna URL. På serversidan fångar vi upp den unika nyckeln, sätter en cookie i klienten och skickar besökaren vidare till den vanliga startsidan. När man sedan surfar in på en videosida så letar vi efter denna cookie och ersätter den vanliga videospelaren med en fjärrkontroll.

Alla kommandon som triggas via fjärrkontrollen skickas i realtid till webbläsaren som visar videon via JavaScript. För den funktionaliteten använder vi en extern tjänst som heter PubNub. Vill man komma igång med PubNub finns det en mängd tutorials och exempel på deras utvecklarsajt. PubNub bygger i grunden på WebSocket som är en relativt ny W3C-standard för realtidskommunikation över TCP-protokollet.

Ett enkelt exempel på hur man skickar data mellan två klienter:

PUBNUB.subscribe({
channel : "svtplay_xl_" + key,
callback : function(message) {
//Magic Stuff
}
});


PUBNUB.publish({
channel : "svtplay_xl_" + key,
message : "play:" + id
});

En rolig sak med den här funktionen är att idén och den första prototypen togs fram på en av våra interna hack days. Ger man utvecklare lite tid och fria händer att jobba med nya, spännande tekniker händer det ibland magiska saker.